写在前面
我是在11月20日左右配置的深度学习环境……怎么说呢,这个时间其实有点尴尬,很多东西都出了新版本,但可能不同工具之间一些由版本引起的问题还没有解决,所以,碰到了很多坑,还好最后都找到了解决办法。下面就给大家分享一下我参考的一篇非常靠谱的教程:深度学习tensorflow环境搭建(二)和内容连续的深度学习tensorflow环境搭建(三),以及每一个步骤里面一些你不注意可能会踩的坑……
1. 安装Ubuntu16.04和GPU
具体安装过程见深度学习tensorflow环境搭建(二) 安装Ubuntu16.04和GPU部分。
注意:关于安装Ubuntu16.04,如果你是默认安装,不用自己分区的话,一般不会有问题。但如果你需要自己分区,请一定注意一下分区的大小,不然后面就会出现安装装一半告诉你“/XXX/XX 空间不足”之类的错误。
下面是我只装了深度学习相关的东西之后电脑的情况:
系统是小伙伴装的,一开始他在 根目录/ 只分配了10G, /tmp 只分配了500M。注意虽然现在/tmp中的内容不多,但是在安装的过程中会产生很多东西,建议不要小于……2G?嗯……
2. 安装NVIDIA显卡驱动
具体安装过程见深度学习tensorflow环境搭建(二) 安装NVIDIA显卡部分。
注意:关于NVIDIA驱动的版本,我安装的时候已经出了387,链接中的作者装的时候出到了384,可能当时384还不太稳定,所以链接中的作者用了381,但是!……一开始我也用了381,但可能后面安装的CUDA版本偏高,381出现了问题,就改用384了。所以我建议,还是用384吧,至少我目前用了384没发现问题。
3. 安装CUDA
具体安装过程见深度学习tensorflow环境搭建(三) 安装CUDA部分。
注意:链接中作者下载的CUDA版本是8.0!但是如果你根据链接中给的地址直接登录CUDA官网的话,默认下载的是CUDA 9.0!如果你下载了9.0,那么恭喜你……最后虽然可能 import tensorflow 成功,但是会出现栈溢出的问题,详情见“sess.run(hello): stack smashing detected” 。所以……至少是目前,在这里下载CUDA 8.0 安装吧……
关于具体的安装过程,可以参考上面的链接,也可以参考官网 cuda installation。我是按照上面链接里的步骤安装的,出现了以下情况:命令行输 nvcc –version 时告诉我cuda toolkit没有安装,但宝宝明明在安装过程中选了“yes”啊……不过没关系,按照这时候命令行的提示($sudo apt-get cuda-toolkit 之类的)再安装以下cuda toolkit就好。
4. 安装cuDNN
具体安装过程见cuDNN官网 cuDNN installation 2.2和2.3部分。
注意:我下载了v7,但是是cuda 9.0的v7,前面我参考的链接中下的是cuda 8.0的cuDNN v7,虽然目前我没发现问题,但为了保持一致,感觉还是用cuda8.0 的 cuDNN v7比较合理……至于我为什么没有这么做,因为这两天cuDNN下载的网站崩了啊……再就是,记得测试成功才算安装成功……
5. 安装anaconda
具体安装过程见深度学习tensorflow环境搭建(三) 安装anaconda部分。
注意:版本问题!链接中的作者最后使用anaconda安装的tensorflow,但我比较习惯用native pip安装。如果你想和链接中的作者一样用anaconda安装tensorflow的话,这时就不用再看我这篇blog了,直接跟着链接中的做法装吧,但如果你也想用native pip的话……这时不要安装python 3.6 version,而是在 download anaconda 页面下载python3.5 version的 Anaconda3-4.2.0-Linux-x86_64.sh,注意是anaconda3不是2,是 4.2.0。安装操作按照参考链接中的就可以,注意版本号以及添加相应的环境变量。
安装anaconda的好处在于可以集成化下载管理深度学习所需要的库,比如numpy,scipy之类,避免了后续再去挨个下载的麻烦。
6. 安装tensorflow
具体安装过程见官网 tensorflow installation 的native pip安装部分。
注意:如果第一次安装不成功,需要使用upgrade安装,因为我们用的是python 3.5 version 的anaconda,所以记得更换 https://……为与python 3.5对应的GPU support内容。
测试是否安装成功:命令行输入 python
>>> import tensorflow as tf
>>> hello = tf.constant('Hello,TensorFlow!')
>>> sess = tf.Session()
>>> sess.run(hello)
'Hello,TensorFlow!'
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> sess.run(a + b)
42
>>> sess.close()
常见错误:
1. no module named tensorflow
解决方案:在文件 /etc/profile (需要用sudo) 或 ~/.bashrc 中添加 PYTHONPARH:
$ vim ~/.bashrc
export PYTHONPATH="/usr/local/lib/python3.5/dist-packages:$PYTHONPATH"
$ source ~/.bashrc
2. ImportError: libcudnn.so.6: cannot open shared object file: No such file or directory
首先检查是否有 libcudnn.so.*
$ sudo find / -name libcudnn.so.*
首先 cd到libcudnn.so.*所在的目录下,然后建立软链接,比如:
$ cd /usr/local/cuda-8.0/lib64/
$ sudo ln -s libcudnn.so.7 libcudnn.so.6
其他常见问题可以参考我前面给的参考链接~
写在后面
希望本文可以对大家有所帮助~~ 版本问题真的是……很呵呵…… 宝宝再也不怕什么分区,什么配环境了……嗯!