这几天要跑一个例程,但它需要tensorflow1.9.0以上的版本,于是想在实验室服务器装1.9.0版的。但是服务器中的CUDA版本为8.0版本与TF版本不符,于是我开始了填坑之旅。
(首先是正确姿势下,如何安装好TF-gpu1.9.0,及验证是否可行)
一。首先要确定的是你要安装的TF版本对应的CUDA与cudnn版本
参考:https://blog.csdn.net/omodao1/article/details/83241074
其他的我不太了解,但是1.9.0说是一定要CUDA9.0,不能是9.1之类的。
然后对应的cudnn版本是7.1.4。其他的版本也不太清楚。
结论是:你要装TF-gpu1.9.0那么首先你要装CUDA9.0 + cudnn7.1.4
二。装CUDA与验证CUDA
参考:https://blog.csdn.net/ksws0292756/article/details/80120561
装CUDA其实没踩多少坑,因为之前实验室电脑已经装过CUDA8.0了,而且CUDA8.0和CUDA9.0的驱动大版本是一致的,不需要更改,所以没换,这点参考的博客中有提。还有就是GCC的版本问题,这个我也没遇到。
对于cuda版本切换,其实就是更换软链接,但是如果你在bashrc中写的cuda路径不是usr / local / cuda的话,那其实不用管这个,只要指向你想用的版本路径就可以了,比如说usr /local/cida-9.0。
我的环境参考一下:
export PATH=/usr/local/cuda-9.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH
/usr/local/cuda-9.0/extras/CUPTI/lib64
export LIBRARY_PATH="$LIBRARY_PATH:/usr/local/cuda-9.0/lib64"
然后这个环境路径的配置对于我这个没怎么用过的的的Linux的系统的小白来说也是坑...
附VIM操作方法:
https://www.cnblogs.com/yangjig/p/6014198.html
附详细操作方法:
https://blog.csdn.net/ylhsuper/article/details/61925713
验证CUDA是否安装成功:https://blog.csdn.net/oTengYue/article/details/79506758
查询当前用户的CUDA与cudnn版本:https://blog.csdn.net/zhangjunhit/article/details/76532196
三。装cudnn与验证cudnn
cudnn下载需要注册和填写一些东西,但都很简单,没有障碍。
其实cudnn官网说得很详细了,参考:https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#install-linux
当然这里也有一个小坑,我就顺便在这里提一下,就是下面的第7点。如果经过检查是cudnn的版本问题的话(之前下载的版本不对),可以参考下面这个链接:https://blog.csdn.net/luccao/article/details/82085639
先删除之前装好的cudnn,再重新装你想装的版本即可。
四,装tensorflow-gpu1.9.0与验证
这个其实是最简单的,我就不说了,但是有个坑我待会提。
你如果装了conda的话,直接用conda install就好了。
这里有涉及到conda安装加速的,顺便提一下:https://blog.csdn.net/guilutian0541/article/details/81004769
下载速度会变很快。
验证方法:https://blog.csdn.net/weixin_43202635/article/details/84203824
(接下来就是坑了···你会遇到各种报错,其实都是上面没做好的原因...)
1.python tensorflow中各种:xxxxxx'module'对象没有属性'xxxxx'
我的建议,删掉环境中的tensorflow然后重新安装...
或者参考:https://blog.csdn.net/BeiErGeLaiDe/article/details/78023000
2.(另外提一下)在shell中无法直接使用conda,会报错AttributeError:module'enum'没有属性'IntFlag'
参考:https://blog.csdn.net/m0_37089544/article/details/84958659
直接在bashrc中写unset PYTHONPATH一劳永逸
3.警告:运行时警告:numpy.dtype大小已更改,可能表示二进制不兼容
在安装好新的tensorflow版本后可能会出现numpy的版本过高的情况,然后会出现警告。
参考:https://blog.csdn.net/u010158659/article/details/81606442
4.还有一个警告是说CPU什么什么的,直接在的.bashrc中写下面的命令无视掉就好,不影响。
TF_CPP_MIN_LOG_LEVEL = 2
5.在运行cudnn测试历程的时候出现cudnn版本不一致
这个一般是你在做的时候系统环境是指向某一个CUDA,但是当你在运行这个历程的时候改掉了这个环境变量,于是出现这种情况,只要你确定好环境变量无误的情况下,删掉重新编译一下,再运行就没问题了。
6.跑tensorflow-gpu的测试代码时出现设备映射:没有已知的设备
出现这个问题的原因可能有很多,有可能是前面的CUDA或者cudnn没装好。还有一种可能是tensorflow-GPU没装好。
后面的情况是这样的,你在shell上通过conda命令行安装了tensorflow-gpu,而且用conda list也能够看到它。但是它的版本很奇怪。
上面一个是通过畅达安装的,但是在pycharm中是看不到的,也就是在pycharm的环境的包列表中并没有这个包。后面一个是我通过pycharm安装的。装完后,就解决了这个问题。
7.安装tensorflow报ImportError:libcublas.so.9.0:无法打开共享对象文件的解决方法
这个问题其实是版本不匹配的问题,你只要装的版本是匹配的话,这个问题不会出现。还有就是你的用户环境配置要正确,不然也会出现这种类似的错误。
参考:https://blog.csdn.net/qysh123/article/details/79977891
暂时回想的就这么多...,这一次配环境,发现计算器很不错,各种坑都有人踩过,而且有答案。