安装python
Ubuntu 20.04 LTS 自带 Python 3.8.10, 只需简单修改python默认版本即可。
还可以下两个工具:
pip (用于 Python 的标准包管理器) ,以及venv(用于创建和管理轻型虚拟环境的标准模块)
pip环境管理
pip安装
- ubuntu安装
pip
sudo apt install python3-pipjavascript:;
ubuntu安装 venv :
sudo apt install python3-venv
- archlinux 安装
python
yay -S python36 python37 python35
通过 ensurepip module
安装 pip
python -m ensurepip --upgrade
pip列出已安装包
列出已安装包
pip list
或者
pip freeze
pip网络安装程序
网络安装程序
pip install package
如:pip install opencv-python
pip本地安装程序
本地安装程序
pip install <目录>/<文件名>
pip install --use-wheel --no-index --find-links=wheelhouse/ <包名>
如:pip install /home/liu/gdal-3.3.3-cp38-cp38.whl
pip批量安装
- 导出环所有依赖到
requirements.txt
文件
pip freeze > requirements.txt
- 批量安装requirements.txt中指定的包
pip install -r requirements.txt
- 列出已安装包
pip freeze
pip升级包
- 查询可升级的包
pip list -o
2.升级包
pip install -U <包名>
- 升级pip
pip install -U pip
pip卸载包
- 卸载单一包
pip uninstall <包名>
- 批量卸载包
pip uninstall -r requirements.txt
pip显示包目录
显示包所在的目录
pip show -f <包名>
pip打包
pip wheel <包名>
pip搜索下载包
搜索包网址: https://pypi.org/
pip search <搜索关键字>
- 安装
pip-search
pip install pip-search
- 搜索
pip_search tensorflow
pip下载包而不安装
pip install <包名> -d <目录>
pip指定单次安装源
pip install <包名> -i http://pypi.v2ex.com/simple
如:pip3 install onnxruntime==1.12.1 -i https://pypi.douban.com/simple --trusted-host pypi.douban.com
pip查看源操作
查看当前源
pip3 config list
- 命令行修改源:
pip3 config set global.index-url https://pypi.douban.com/simple/
- 源配置文件
修改~/.pip/pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=mirrors.aliyun.com
- 常用源
a) 清华大学TUNA
https://pypi.tuna.tsinghua.edu.cn/simple/
b) ali
http://mirrors.aliyun.com/pypi/simple/
c) 中国科学技术大学
https://pypi.mirrors.ustc.edu.cn/simple/
d) 豆瓣
https://pypi.douban.com/simple/
pip虚拟环境
virtualenv 是一个创建隔绝的Python环境的工具。virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Python工程所需的包。
virtualenv是如何创建“独立”的Python运行环境的呢?原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令source venv/bin/activate进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令python和pip均指向当前的virtualenv环境。virtualenv为应用提供了隔离的Python运行环境,解决了不同应用间多版本的冲突问题。
- 参考文献。
安装virtualenv
- 安装
sudo apt install python3-pip
pip install virtualenv
- 配置
export PATH=/home/liupei/.local/bin:$PATH
3 验证
virtualenv --version
virtualenv -h
virtualenv project 将会在当前的目录中创建一个文件夹,包含了Python可执行文件, 以及 pip 库的一份拷贝,这样就能安装其他包了。虚拟环境的名字(此例中是 project ) 可以是任意的;若省略名字将会把文件均放在当前目录。
使用virtualenv
1.安装配置
$ mkdir test && cd test
$ virtualenv project
$ virtualenv -p /usr/bin/python2.7 project
$ virtualenv --no-site-packages project
New python executable in /root/test/project/bin/python
Installing setuptools, pip, wheel...
done.
2. 查看当前默认的版本
python -V
3. 激活虚拟环境:
source project/bin/activate
4. 关闭虚拟环境:
deactivate
5. 要删除一个虚拟环境,只需删除它的文件夹即可
rm -rf project
6. 虚拟环境重建
pip freeze > requirements.txt
pip install -r requirements.txt
python帮助
Linux网页查看
Python3自带的帮助文档,REF
pydoc -p 8000
Server ready at http://localhost:8000/
Server commands: [b]rowser, [q]uit
server>
打开浏览器,在地址栏输入 http://localhost:8000/
如果要查看Python3.5的文档
pydoc3 -p 8000
在控制台查看
直接在命令行Terminal查看帮助,REF
$ python
Python 2.7.15 |Anaconda, Inc.| (default, Dec 14 2018, 19:04:19)
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> help()
help> modules
输入要查看的module,如numpy
help> numpy
常用包的安装
pip install rasterio
pip install -U scikit-learn
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pygame
python导入文件的方法
调试代码的时候,程序一直提示没有该模块,一直很纳闷,因为我导入文件一直是用绝对路径进行导入的。按道理来讲是不会出现模块找不到的情况的。最后仔细分析了整个代码的目录结构,才发现了问题。
(1)主程序与模块程序在同一目录下:
如下面程序结构:
– src
|– mod1.py
|– test1.py
若在程序test1.py
中导入模块mod1
, 则直接使用import mod1
或from mod1 import *
;
(2)主程序所在目录是模块所在目录的父(或祖辈)目录
如下面程序结构:
– src
|– mod1.py
|– mod2
| – mod2.py
– test1.py
若在程序test1.py
中导入模块mod2
, 需要在mod2
文件夹中建立空文件__init__.py
文件(也可以在该文件中自定义输出模块接口); 然后使用 from mod2.mod2 import *
或import mod2.mod2
.
(3)主程序导入上层目录中模块或其他目录(平级)下的模块
如下面程序结构:
– src
|– mod1.py
|– mod2
|– mod2.py
|– sub
| – test2.py
– test1.py
若在程序test2.py
中导入模块mod1.py
和mod2.py
。首先需要在mod2
下建立__init__.py
文件(同(2)),src
下不必建立该文件。然后调用方式如下:
下面程序执行方式均在程序文件所在目录下执行,如test2.py
是在cd sub
;之后执行python test2.py
而test1.py
是在cd src
;之后执行python test1.py
; 不保证在src
目录下执行python sub/test2.py
成功。
import sys
sys.path.append(“..”)
import mod1
import mod2.mod2
(4)从(3)可以看出,导入模块关键是能够根据sys.path
环境变量的值,找到具体模块的路径。
总结:
通过总结可以发现,当你要导入的文件在和你的当前文件在同一个目录时,你直接导入这个文件名就好了。
当你要导入的文件或者目录不和你的当前文件同目录时,你需要跳到这个你要导入文件的父级目录,然后一级一级的用点号连接走过的目录或者文件,然后就可以了 至于要怎么跳到这个这个父级目录。比较通用的就是,将父级目录加入系统路径,然后用点号一级一级的寻找,直到到达你要导入的模块。
自定义第三方库
一般安装Python的三方库,直接使用conda或Python的包管理工具pip,或下载源码包后,使用其中的setup.py安装,就可以直接安装在Python的系统库目录中了。
如果想使用一个三方库,又不想安装在Python的默认库目录中,可以程序中使用”sys.path.append(“具体路径”)”将三方库路径暂时加入库路径。如果想操作一次,之后任何程序都可以直接使用,比如自己写的库?以linux系统conda环境为例,示例如下:
建立自己的库
mkdir libpy && vim libpy/liu.py
wsl@t470:~$ head libpy/liu.py
def testme():
print('hello world')
把三方库路径写入”.pth”文件
wsl@t470:~$ vim anaconda2/lib/python2.7/site-packages/x.pth
# 添加内容 /home/wsl/libpy
查看python默认路径
conda下python默认路径文件
wsl@t470:~$ python
Python 2.7.16 |Anaconda, Inc.| (default, Sep 24 2019, 21:51:30)
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/home/wsl/anaconda2/lib/python27.zip', '/home/wsl/anaconda2/lib/python2.7', '/home/wsl/anaconda2/lib/python2.7/plat-linux2', '/home/wsl/anaconda2/lib/python2.7/lib-tk', '/home/wsl/anaconda2/lib/python2.7/lib-old', '/home/wsl/anaconda2/lib/python2.7/lib-dynload', '/home/wsl/anaconda2/lib/python2.7/site-packages', '/home/wsl/anaconda2/lib/python2.7/site-packages', '/home/wsl/libpy']
调用三方库
调用自己python库函数
wsl@t470:~$ python
Python 2.7.16 |Anaconda, Inc.| (default, Sep 24 2019, 21:51:30)
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from liu import testme
>>> testme()
hello world
>>>
python导入路径
sys.path.insert(0, "/home/u/gcForest/lib")
小例子
调用liu.py库,实现pkl格式自动转换为mat格式
# pkl2mat
def pkl2mat(filename):
"trans .pkl to .mat filename: obia7.pkl"
print('original image will be shown...');
DATA_PATH= os.path.join(os.getcwd(),"Data")
input_mat=scipy.io.loadmat(os.path.join(DATA_PATH,'gf1.mat'))['gf1']
padIn = np.zeros((input_mat.shape[0]+3*2,input_mat.shape[1]+3*2,input_mat.shape[2]))
for i in range(input_mat.shape[2]):
padIn[:,:,i] = np.pad(input_mat[:,:,i],((3,3),(3,3)),'constant',constant_values = (0,0))
input_mat = padIn;
outpath=os.getcwd();
print('predicted image will be trans...');
with open(os.path.join(outpath,filename),'rb') as f:
predicted_image=pkl.load(f)
scipy.io.savemat(os.path.join(outpath,filename+'.mat'),mdict={'predicted_image':predicted_image})
# main.py
(cnn) wsl@t470:~/workcat main.py
from liu import pkl2mat
import sys
if __name__=="__main__":
pkl2mat(sys.argv[1])
# run main.py
(cnn) wsl@t470:~/work python main.py obia23.pkl
original image will be shown...
predicted image will be trans...
IDE
KATE
工具-模式-脚本-Python
;
工具-语法高亮-脚本-Python
;
工具-缩进-Python
;
视图-工具视图-显示终端;
设置-配置 Kate-终端-设置前缀:
python #后面要有一个空格, 这样以后运行的时候按下运行快捷键,就相当于在终端执行 Python 文件名
设置-配置快捷键:F3
运行当前文档
设置-配置 Kate, 设置自动括号:
参考文献:
pycharm
conda
安装
wget -c https://repo.anaconda.com/archive/Anaconda2-2019.10-Linux-x86_64.sh --no-check-certificate
chmod 744 Anaconda2-2018.12-Linux-x86_64.sh
bash Anaconda2-2018.12-Linux-x86_64.sh
## export PATH=/home/liupei/anaconda3/bin:$PATH
清华源 下载anaconda
If you'd prefer that conda's base environment not be activated on startup,
run the following command when conda is activated:
conda config --set auto_activate_base false
You can undo this by running `conda init --reverse SHELL`? [yes|no]
[no] >>>
You have chosen to not have conda modify your shell scripts at all.
To activate conda's base environment in your current shell session:
eval "(/home/alex/miniconda3/bin/conda shell.YOUR_SHELL_NAME hook)"
To install conda's shell functions for easier access, first activate, then:
conda init
Thank you for installing Miniconda3!
conda帮助
conda安装后验证等
conda -V
python -V
conda update conda
conda -h
conda卸载
# 卸载 anaconda
rm -rf ~/anaconda2
conda修改源
- 查看当前源
conda config --show channels
显示如下:
channels:
- defaults
- anaconda修改镜像源(conda源)清华源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
- 再次查看当前源
conda config --show channels
显示如下:
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- defaults
- 恢复默认channel
conda config --remove-key channels
conda环境管理
1.取消启动base
conda config --set auto_activate_base false
conda config --set auto_activate_base true
2.显示已安装环境
conda env list
3.创建环境
conda create -n py2 python=2.7
conda create -n py3 python=3.7
4. 激活环境
conda activate py3
5. 反激活环境
conda deactivate
6. 克隆环境
conda create --name py2 --clone python2
7. 删除环境
conda remove --name py2 --all
conda包管理
1. 列出已安装包
conda list
2. 安装包
conda install pandas
3. 删除包
conda remove pandas
4. 从指定环境中删除包
conda remove --name python2 pandas
5. 升级包( 升级单一包)
conda upgrade pandas
升级包(升级所有包)
conda upgrade --all
conda 批量导出
1. 环境导出
conda env export > py36.yaml
2. conda 批量安装
conda env create -f py36.yaml
or
1. 批量导出
conda list -e > requirements.txt
2. 批量安装
conda install --yes --file requirements.txt
wsl环境配置
wsl安装及配置参考:[wsl安装](https://liupei.ink/index.php/2021/01/13/wsl安装及路径/)
vim自动补全python
下载Pydiction
mkdir -p .vim/bundle
cd .vim/bundle/
git clone https://github.com/rkulla/pydiction.git
配置Pydiction
cp -r ~/.vim/bundle/pydiction/after/ ~/.vim
在.vimrc文件添加如下配置
filetype plugin on
let g:pydiction_location = '~/.vim/bundle/pydiction/complete-dict'
let g:pydiction_menu_height = 20
参考文献:[wengyupeng]
非管理员安装python
下载安装
download python: https://www.python.org/downloads/release
cd directory and
./configure --prefix=/users/installed/python2.7
make install
修改配置文件
vim .bashrc
export xport PATH=/public3/home/ch_cumtlp3/installed/python2.7/bin:$PATH
source .bashrc
python -V
更改python默认版本
- 打开终端,输入python,可以看到当前系统中默认的python版本是 2.7.12
- 进入”/usr/bin”目录下,输入”ls -l | grep python”显示所有名字中包含python的文件
- 只要把python的指向改为python3即可,Python3指向的是Python3.x
sudo mv python python_backup
sudo ln -s /usr/bin/python3 /usr/bin/python
再执行Python命令,可以看到默认版本已经改成Python3.x.x了
gdal和rasterio安装
下载二进制包,通过pip安装,网址:gdal 和 rasterio,下载 GDAL
和 rasterio
包,然后 pip
安装。
1. gdal 安装
pip3 install C:\Users\liu\Downloads\GDAL-3.4.2-cp37-cp37m-win_amd64.whl
2. rasterio 安装
pip3 install C:\Users\liu\Downloads\rasterio-1.2.10-cp37-cp37m-win_amd64.whl
pycache文件夹问题
运行脚本时添加 -B
参数
python
python -B foo.py
参考文献:csdn
Latex中python代码高亮显示
Latex中高亮显示 python 看 [Hight python in Latex], The package is loaded by the following line:
\usepackage{pythonhighlight}
It is then possible to include a Python snippet directly in the code using:
c++
def f(x):
return x
It is also possible to include inline Python code in LaTeX with \lstinline{\pyth}:
The special method \pyth{init}…
Last but not least, you can load an external Python file with:
\inputpython{python_file.py}{23}{50}
to display the contents of the file python_file from line 23 to line 50.
jupyter notebook
Jupyter Notebook介绍、安装及使用教程,看这里[REF]
1.安装jupyter
pip install jupyter
conda install jupyter notebook
2.配准环境 IPython
from notebook.auth import passwd
passwd()
#c.NotebookApp.password = 'sha1:6e4d6f95274c:b1144336cc77d78c31c195cfd2a249e37845f75d'
c.NotebookApp.password='sha1:58ff51f6de2f:c6f429e0f8e2566e5185cedc817f5cc30f53746a'
c.NotebookApp.ip = '::'
c.NotebookApp.port = 9999
3. 使用 local
jupyter notebook --config=jupyter_config.py
linux 下命令行运行 python 脚本
脚本方式
方法是在.py文件的第一行加上下面的任意一行:
!/usr/bin/python
!/usr/bin/env python
二者的区别在于:
- !/usr/bin/python是告诉操作系统在调用脚本时调用/usr/bin目录下的python解释器,python解释器的路径被明确给出。
- !/usr/bin/env python是为了防止用户没有将python 装在默认的 /usr/bin 路径里。当系统看到这一行的时候,首先会到env设置里查找 python 的安装路径,再调用对应路径下的解释器程序完成操作。
!/usr/bin/env python会去环境设置寻找python目录通常推荐第二种写法。需要再次强调的是,上述解析路径应该放在Python 脚本的第一行。
交互式方式
在linux命令行模式中运行python,进入python交互式环境,写程序后直接输出结果。
python命令行调试
假如待调试文件为 test2.py,输入以下命令启动调试
python -m pdb test2.py
运行结果如下:
(Pdb) b 8 # 第8行设置断点
(Pdb) b # 显示所有断点
(Pdb) cl 2 # 清楚第2行断点
(Pdb) n # 下一步(遇函数不进入)
(Pdb) s # 下一步(遇函数进入)
(Pdb) r # 一直运行到函数返回
(Pdb) c # 继续运行直到断点或结束
(Pdb) j 10 # 跳转到第10行
(Pdb) p para #打印变量para
(Pdb) l # 列出脚本清单
(Pdb) a # 打印当前函数参数
(Pdb) h # 查看pdb帮助
(Pdb) q # 退出pdb
(Pdb) w # 查看所在的位置
windows 环境
前期准备
首先你需要有一台电脑 然后你需要保证这个电脑是干净的:没有额外安装 Python (因为之前安装过 Python 的原因导致我之后又重新装了一遍 Miniconda),没有安装miniconda/conda这些环境管理软件
miniconda安装
- 建议从清华的镜像源下载,官网下载的速度极慢。
[清华镜像源:anaconda | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror]
- Miniconda官网:[Miniconda — Conda documentation](https://docs.conda.io/en/latest/miniconda.html) 从镜像源中选择时间最晚的一个 latest 版本的即可 !安装(默认安装即可)
环境变量配置
`电脑` - `属性` - `高级系统设置` - `高级` - `环境变量` - 对 `path` 进行设置,`新建` 环境变量
D:\miniconda3
D:\miniconda3\Scripts
D:\miniconda3\Library\bin
验证是否安装成功
conda info
conda 换源
由于 miniconda 下载文件/依赖库等默认的采用国外的服务器,下载速度一言难尽,一般改为国内的清华源/阿里源等方式解决。我这里安装的是清华的源。
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes # 生成".condarc"文件
虚拟环境设置
conda create –n py38 python=3.8
查看 conda 已有虚拟环境
conda info -e
conda env list
创建虚拟环境
conda create -n "envName" python=3.8
激活环境
activate "envName"
conda activate "envName"
source activate "envName"
退出环境
conda deactivate "envName"
移除环境
conda remove -n "envName" --all
指定环境下安装包
conda list
conda install [packageName]
conda install -n py27numpy
conda search [packageName]
conda uninstall [packageName]
科学计算包
- numpy
- pandas
- scipy
- scikit-learn
绘图相关包
- matplotlib
- seaborn
jupyter notebook
- jupyter
- notebook
- ipykernel
- nb_conda_kernels
其他
- beautifulsoup4
- reportlab
参考文献:[ZHIHU]
常见问题
Could not fetch URL
使用下面的命令
pip3 install opencv-python-headless==4.6.0.66 -i https://pypi.douban.com/simple --trusted-host pypi.douban.com
常用国内源
1) http://mirrors.aliyun.com/pypi/simple/ 阿里云
2) https://pypi.mirrors.ustc.edu.cn/simple/ 中国科技大学
3) http://pypi.douban.com/simple/ 豆瓣
4) https://pypi.tuna.tsinghua.edu.cn/simple/ 清华大学
5) http://pypi.mirrors.ustc.edu.cn/simple/ 中国科学技术大学
matplotlib中文显示
pyplot 并不默认支持中文显示,也没有自带中文字体,因此需要自行下载所需字体,并修改 rcParams 参数来显示中文。(系统 Ubuntu20.04,python3.8.10)
1. 下载并安装simhei
pan/01_pei_liup/02_software/linux/simhei.ttf
sudo cp simhei /usr/share/fonts/
sudo mkfontscale
sudo mkfontdir
fc-cache -fv
fc-list :lang=zh
2. 查看 matplotlib 的字体路径
import matplotlib
print(matplotlib.matplotlib_fname())
/home/liupei/code/pm25/lib/python3.8/site-packages/matplotlib/mpl-data/matplotlibrc
得到的路径是 matplotlib 参数预加载文件matplotlibrc的路径,则字体的存放路径为mpl-data/fonts/ttf。将下载好的字体文件复制到该目录下
3. 删除 matplotlib
的缓冲目录, 查看 matplotlib
的字体缓存路径:
import matplotlib
print(matplotlib.get_cachedir())
/home/liupei/.cache/matplotlib
得到的路径如 ~/.cache/matplotlib
在终端使 rm -rf ~/.cache/matplotlib
命令删除缓存目录。这样做之后,在使用 matplotlib
绘图时,会自动生成新的缓存目录。
4. 设置参数
使用 matplotlib 绘图时,添加以下几行代码:
mpl.rcParams['font.family'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False
mpl.rcParams['font.size'] = 8
sns.set(font_scale=0.8,font='SimHei')
#sns.set_style('whitegrid',{'font.sans-serif':['ukai','Book']})
dfData = data.corr()
sns.heatmap(dfData, annot=True, vmax=1, square=True, cmap="Blues")
#plt.savefig('./BluesStateRelation.png')
plt.show()
参考文献:[凌云飞鸿]
Matplotlib is currently using agg, which is a non-GUI backend
Solution: install any of the `matplotlib` supported GUI backends
- however you can also fix the issue by installing any of the matplolib GUI backends like `Qt5Agg` , `GTKAgg` , ` Qt4Agg` , etc.
for example `pip install pyqt5` will fix the issue also
pip install pyqt5
test using `cat test.py`
import matplotlib
import pandas as pd
import matplotlib.pyplot as plt
dataInit = pd.DataFrame([1,2,3,4,5,6])
plt.plot(dataInit)
plt.show()
如果出现错误: qt.qpa.plugin: Could not load the Qt platform plugin “xcb” in ” ” even though it was found.
sudo pacman -S tk # for arch or manjaro
sudo apt install python3-tk # for ubuntu
参考文献: [stack over]
‘index-url’ in section ‘global’ already exists
vim .config/pip/pip.conf
添加以下内容
[global]
index-url=https://mirrors.aliyun.com/pypi/simple/
extra-index-url=
https://pypi.tuna.tsinghua.edu.cn/simple/
https://pypi.mirrors.ustc.edu.cn/simple/
https://pypi.douban.com/simple/
[install]
trusted-host=mirrors.aliyun.com
UnicodeDecodeError: ‘gbk’ codec can’t decode
添加, encoding='utf-8
‘
参考文献:[csdn]
Python 学习项目
100 天学会机器学习
[REF](https://github.com/MLEveryday/100-Days-Of-ML-Code)
spectral环境配置
conda install Numpy pillow wxPython matplotlib IPython PyOpenGL # supported spectral
cp -rv spectral/ .
python setup.py install # install spectral
pip install scikit-learn # install sklearn
conda install pandas # install pandas
conda install joblib # install joblib
conda install -c https://conda.binstar.org/menpo opencv # install cv2 or
conda install opencv
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python
参考文献:
oc1环境配置
mkdir oc1
pip3 install --download oc1/ numpy
pip3 install --download oc1/ git+https://github.com/ AndriyMulyar/sklearn-oblique-tree
tar zcvf oc1.tar.gz oc1/
% upload to server
pip freeze >requirements.txt
pip install --no-index --find-links=oc1/ -r requirements.txt
pip install --no-index --find-links=oc1/ sklearn_oblique_tree
conda list sklearn-oblique-tree
% packages in environment at /public3/home/ch_cumtlp3/ anaconda2/envs/py3:
%
% Name Version Build Channel
sklearn-oblique-tree 1.0.0 pypi_0 pypi
gcForest
gcForest环境配置
conda install argparse
conda install joblib==0.13.2
conda install keras==2.2.4
conda install psutil==5.6.2
conda install scikit-learn==0.20.3
conda install scipy==1.2.1
conda install simplejson==3.16.0
conda install tensorflow==1.13.1
conda install tensorflow-base==1.13.1
conda install tensorflow-estimator==1.13.0
conda/pip install xgboost==0.82
conda install numpy==1.16.3
conda install pandas==0.24.2
conda install six==1.12.0
conda install sys==5.8
conda install pickle % cannot install
python -V % 2.7.16
conda install argparse joblib keras psutil scikit-learn scipy simplejson tensorflow
[参考文献gcForest],最新版本[DeepForest], [DF21]
pytorch安装 {% post_link cpu-gpu-ip %}
pytorch
pip3 install torch torchvision -i https://pypi.mirrors.ustc.edu.cn/simple/
ccfs
Rainforth-Canonical Correlation Forests [参考文献], [参考文献github]
CNN
1. CNN环境配置
conda create -n cnn python=3.5
conda install Numpy pillow wxPython matplotlib IPython PyOpenGL
cp -r installed/spectral/ .
python setup.py install
conda install scipy
conda install scikit-image
conda install scikit-learn -y # No module named 'sklearn'
pip install -U scikit-learn
conda install tensorflow
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn tensorflow==1.14.0
conda install six
conda install pandas
conda install matplotlib
conda install -c https://conda.binstar.org/menpo opencv
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python
2. cnn使用方法
修改 DataSet_Preparation_G.py
,
python DataSet_Preparation_G.py | tee out.txt
修改 CNN_G.py
python CNN_G.py | tee -a out.txt
修改 Decoder_G.py
python Decoder_G.py | tee -a out.txt
./m_oa.py % cal OA
./m_show.py % display results
修改路径:CNN_G.py 中 m_path
1.patchsize.py 修改
2. IndianPinesCNN.py 修改
NUM_CLASSES = 16, 换数据改
CHANNELS = 220 (波段数), 换数据改
weights = tf.get_variable(‘weights’, shape=[KERNEL_SIZE, KERNEL_SIZE, CHANNEL, conv1_channels], 换数据改 (波段数 CHANNELS) % # Conv 1
z = tf.nn.conv2d(x_image, weights, strides=[1, 1, 1, 1], padding=’SAME‘), patchsize>1改为VALID
z = tf.nn.conv2d(h_pool1, weights, strides=[1, 1, 1, 1], padding=’SAME‘), patchsize>1改为VALID
3. DataSet_Preparation_G.py 修改
COUNT=200; 进行过采样之后每一个类别内的样本数目, 基本不改
OUTPUT_CLASSES=16; GT中类别数 (6),换数据改
TEST_FRAC = 0.25; 测试数据百分比, 基本不改
input_mat=scipy.io.loadmat(os.path.join(DATA_PATH,’gf1.mat’))[‘gf1’],换数据-文件夹改
target_mat =scipy.io.loadmat(os.path.join(DATA_PATH,’gf1_gt.mat’))[‘gf1_gt’](要用cv读tif?),换数据-文件夹改
TRAIN_PATCH = TRAIN_PATCH. reshape((-1,220,PATCH_SIZE,PATCH_SIZE)) ,[line 178:] (波段数)
注意修改循环次数,GT是通过ENVI ->roi2img ->window save as tif.
4. 修改 CNN_G.py,或, g_cnn.py … based on (a)
TRAIN_FILES = 8, [line 38:]
TEST_FILES = 6, [line 39:]
saver.save([line 225:] (路径m_path)
temp_ image = temp_ image. reshape (temp_ image. shape[0], IMAGE_ SIZE,IMAGE_ SIZE, 220 (波段数), [line 125:]
5. 修改 Decoder_G.py,或 g_decoder.py
from sklearn.metrics import accuracy_score
, [line 1:]
input_mat=scipy.io.loadmat(os.path.join(DATA_PATH,’gyl321.mat‘))[‘gyl321‘]
, [line 24]
target_mat=scipy.io.loadmat(os.path.join(DATA_PATH,’gyl321gt.mat‘))[‘gyl321gt‘]
, [line 25]
注意修改循环类别个数
model_name = ‘model- spatial- CNN-11X11. ckpt-3999′
(patchsize), [line 28:]
在运行完一个patch_size的值之后,最好文件夹下面所生成的 checkpoint
文件和__pycache__
文件 删掉,不然会影响不同值的运行.
参考来源[1hyperspectral],参考来源[2BASS-Net]
tr
1. 配置 pip 源,加快下载速度
pip config list
pip3 config set global.index-url https://pypi.douban.com/simple/
pip config list
2. 安装软件
pip3 install torch torchvision -i https://pypi.mirrors.ustc.edu.cn/simple/
pip3 install lightning
pip3 install albumentations
yum install gdal
pip3 install rasterio -i https://pypi.mirrors.ustc.edu.cn/simple/
pip3 install opencv-python -i https://pypi.mirrors.ustc.edu.cn/simple/
pip3 install matplotlib -i https://pypi.mirrors.ustc.edu.cn/simple/
pip3 install numpy -i https://pypi.mirrors.ustc.edu.cn/simple/
pip3 install pandas -i https://pypi.mirrors.ustc.edu.cn/simple/
pip3 install scikit-image -i https://pypi.mirrors.ustc.edu.cn/simple/
pip3 install timm
beancount
hledger,[Reference]
pytorch 安装并配置GPU
1. 安装
参考文献
– [语雀]
2. 验证:
>>> import torch
>>> torch.__version__
>>> torch.cuda.is_available()
>>> torch.cuda.get_device_name(0)
[参考文献](https://zhuanlan.zhihu.com/p/88903659)
lableme转png
批量转换
1. 将所有生成的 json 文件放在 data 目录下, 运行 json_png.py
python json_png.py
json_png.py
内容如下
import os
import torch
json_list = os.listdir('data')
print(json_list)
#os.system('activate labelme')
for idx, json_file in enumerate(json_list):
os.system('labelme_json_to_dataset ' + 'data/' + json_file)
print('Done:',idx)