1.anaconda建立虛擬環境及conda操作
//env_name代表你想要建立的環境名字,-n表示名字
conda create -n ${env_name} python=3.5
//激活環境
source activate ${env_name}
//退出環境
source deactivate
//刪除環境
conda remove -n ${env_name} --all
//查看conda環境
conda info --env
//查看conda的安裝包
conda list
2.安裝tensorflow,cuda,cudnn
本身tensorflow的安裝很簡單,只需要pip或者conda就好,但是必須找到tensorflow,cuda,cudnn的對應關係。
Version Python version Compiler Build tools cuDNN CUDA
tensorflow_gpu-1.11.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.15.0 7 9
tensorflow_gpu-1.10.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.15.0 7 9
tensorflow_gpu-1.9.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.11.0 7 9
tensorflow_gpu-1.8.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.10.0 7 9
tensorflow_gpu-1.7.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.9.0 7 9
tensorflow_gpu-1.6.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.9.0 7 9
tensorflow_gpu-1.5.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.8.0 7 9
tensorflow_gpu-1.4.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.5.4 6 8
tensorflow_gpu-1.3.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.4.5 6 8
tensorflow_gpu-1.2.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.4.5 5.1 8
tensorflow_gpu-1.1.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.4.2 5.1 8
tensorflow_gpu-1.0.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.4.2 5.1 8
注意,例如cuda9.0,cudnn儘量選擇7.0*或者7.1,不然或許會有問題
(1)tensorflow的安裝:
//注意必須到當前虛擬環境
pip install tensorflow-gpu==1.10
conda install tensorflow-gpu=1.10
(2)cuda與cudnn的安裝(使用conda)
使用conda安裝cuda和cudnn可以保證不影響系統默認環境的cuda和cudnn
因爲conda的默認源速度慢且沒有cuda版本,因此需要添加國內清華或者中科大的源
//終端加入
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes
//或者直接打開文件加入
sudo gedit ~/.condarc
//安裝cuda
conda install cudatoolkit=9.0 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64/
//安裝cudnn
conda install cudnn=7.1.2
(3)cuda安裝的另一方式
如果不想通過conda安裝,可以通過源文件進行安裝,安裝方式見https://mp.csdn.net/postedit/81183063
找到對應的cuda和cudnn版本,下載後進行安裝,因爲系統中可能存在不同版本的cuda,所以需要對cuda軟連接進行處理,使其指向不同的cuda
打開環境變量:
gedit ~/.bashrc
找到關於cuda的幾行
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
因爲其指向的是cuda8.0,我們先把庫文件位置變成cuda可執行文件所在位置而與具體的版本無關,將上面一段修改爲:
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
cuda版本切換
//刪除原來的軟連接
sudo rm -rf /usr/local/cuda
//建立新的軟連接
sudo ln -s /usr/local/cuda-9.0 /usr/local/cuda
查看軟連接
cudnn版本切換:
主要需要將cudnn文件放入你選擇的cuda版本中
sudo cp cuda/include/cudnn.h /usr/local/cuda-9.0/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-9.0/lib64/
sudo chmod a+r /usr/local/cuda-9.0/include/cudnn.h
sudo chmod a+r /usr/local/cuda-9.0/lib64/libcudnn*
3.錯誤總結
(1)could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
解決方法:sudo rm -rf ~/.nv/
(2)tensorflow版本與cuda,cudnn版本的問題會出現很多問題,需要修改版本