尝试一天终于完成,原来一轮训练需要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