嘗試一天終於完成,原來一輪訓練需要15個小時使用GPU20多分鍾。
環境:Ubuntu16.0.4; nvidia-smi 396 ;
安裝 :python 3.6 + cuda 9.0 + cudnn7.4.1 + tensorflow-gpu1.12.0 + keras2.2.4
1.注冊 百度的AI studio平台
完成任務(兩三分鍾)可以獲得100小時的GPU
地址 https://aistudio.baidu.com/ (創建項目,上傳數據集,啟動項目很快就能學會使用)
啟動環境進入終端
2.開始配置cuda cudnn
少走彎路:先確定cuda 版本,再選擇對應版本的cudnn 和 tf;
2.1查看顯卡驅動
nvidia-smi
2.2查看驅動對應的cuda版本
地址:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
注:顯卡驅動是向下兼容的,平台的驅動是396,無法安裝cuda10;所以選擇cuda9.
2.3.選擇cudnn 版本
查看cuda cudnn 對應版本 https://tensorflow.google.cn/install/source#linux
注:最終選擇 cudnn 7 好 tf-1.12.0;
3.安裝
3.1 下載 cudnn
cudnn下載地址:https://developer.nvidia.com/rdp/cudnn-archive 需要注冊登錄
cudnn 需要和linux系統版本對應 查看linux版本
3.2 上傳數據集
下載cudnn 之后改個短的名字通過studio 平台中的項目
如果項目已經創建可以選擇修改上傳數據集
上傳之后的數據在~/data目錄下
3.3 下載cuda9.0
wget https://developer.nvidia.com/compute/cuda/9.0/Prod/local_installers/cuda_9.0.176_384.81_linux-run
新建一個目錄 : mkdir cuda-9.0
安裝cuda : sh cuda_9.0.176_linux-run --silent --toolkit --toolkitpath=$HOME/cuda-9.0
3.4 安裝cudnn
mkdir -p extract/DEBIAN dpkg -X ./xxx.deb extract dpkg -e ./xxx.deb extract/DEBIAN cp extract/usr/include/x86_64-linux-gnu/cudnn_v7.h cuda-9.0/include/ cp extract/usr/lib/x86_64-linux-gnu/libcudnn* cuda-9.0/lib64/
3.5 配置環境
vi ~/.bashrc export PATH=/home/aistudio/cuda-9.0/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/home/aistudio/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} export CUDA_HOME=/home/aistudio/cuda-9.0 source ~/.bashrc
3.6 新建虛擬環境
conda create -n env_name python=3.6 source activate env_name
3.7 安裝 tensorflow-gpu
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu==1.12.0
3.8 修改權限
chmod a+r ~/cuda-9.0/include/cudnn_v7.h
chmod a+r ~/cuda-9.0/lib64/libcudnn*
3.9 驗證
4.可能會遇到的問題
4.1 libcudnn.so.版本: cannot open shared object file: No such file or directory
原因之一是由於cudnn 和cuda版本不兼容導致解決辦法根據前面描述確定好對應的版本重新安裝
原因二環境變量的問題,按照教程配置環境變量並source
/home/aistudio/cuda-9.0/include/cudnn.h 如果是這個地方的錯誤,去看看對應目錄下是名字是否一致,可能不是cudnn.ch,不同版本不一樣比如cuda9.0 可能是cudnn_v7.h
4.2 cudaErrorCudartUnloading CUDA: CUDA driver version is insufficient for CUDA runtime version
顯卡驅動和cuda版本兼容問題 見前。解決辦法其一:降低cuda到適用版本重新安裝。其二:升級驅動(沒嘗試)
4.3 如果安裝keras 報錯
AttributeError: module 'tensorflow.python.keras.backend' has no attribute 'get_graph'
keras和tf版本兼容問題 查看 https://docs.floydhub.com/guides/environments/
5. 其他
5.1 卸載cuda
cuda-9.0/bin/uninstall_cuda_9.0.pl
5.2 卸載 cudnn
sudo rm -rf ~/cuda-9.0/include/cudnn_v7.h sudo rm -rf ~/cuda-9.0/lib64/libcudnn*
6. 保存AIstudio中的conda環境
配置好虛擬環境之后壓縮
conda info --env
tar -zcvf /destination/path/env_nmae.gz /envs/env_name
重啟aistudio后,解壓壓縮的虛擬環境
tar -zxvf env_name.tar.gz
conda create -n new_env --clone /解壓路徑/env_name
參考https://blog.csdn.net/firesolider/article/details/105023062