linux:deepin-15.5 + 小米笔记本pro 下的深度学习环境cuda+tensorflow-gpu-1.4版本搭建过程
深度学习环境tensorflow-gpu 1.4安装过程记录文章修改自:deepin linux 15.5 + 小米笔记本pro 下的深度学习环境tensorflow-gpu 1.4版本搭建过程参数:操作系统:Deepin Linux 15.5笔记本: 小米笔记本pro显卡:Nivdia MX150tensorflow版本:1.4cuda版本:8.0cudnn版本:6一、安装显卡驱动用的是deep
深度学习环境tensorflow-gpu 1.4安装过程记录
文章修改自:deepin linux 15.5 + 小米笔记本pro 下的深度学习环境tensorflow-gpu 1.4版本搭建过程
我的另一篇文章:ubuntu 安装cuda9.0+cudnn7.1-与cuda8.0共存
参数:
- 操作系统:Deepin Linux 15.5
- 笔记本: 小米笔记本pro
- 显卡:Nivdia MX150
- tensorflow版本:1.4
- cuda版本:8.0
- cudnn版本:6
一、安装显卡驱动
用的是deepin 15.5系统,该系统提供驱动管理工具,可以很简单为显卡安装驱动。ubuntu系统提供的也有类似的工具,其他系统我不太熟悉,请自行研究。装驱动还是挺简单的,多搜一下就可以了。
下图是deepin的驱动管理工具,我为显卡安装了大黄蜂版的显卡驱动(bumblebee-nvidia和nvidia-driver),如下图,上面那个就是MX150的显卡驱动,下面那个是我的核显驱动,可以不用管它。
选中对应驱动,保存即可。
打开终端,在终端内输入以下命令:
sudo apt-get update
sudo apt-get install nvidia-smi
- 1
- 2
通过nvidia-smi,我们可以查看显卡信息,以确认我们的驱动是否正确安装了。在终端内输入:
optirun nvidia-smi
- 1
因为我们安装的是大黄蜂版的显卡驱动,所以显卡是由bumblebee进行管理的。为了降低能耗,平时独显是处于关闭状态的,如果有程序需要使用到独显,可以通过optirun进行启动。对于做深度学习训练这样可能太麻烦了,是有解决方法的,后面我会详细介绍。
如果显卡驱动安装正确,运行上面的命令,你会看到类似于下面的输出:
至此,驱动安装完成。
二、安装tensorflow-gpu
兼容原因,安装tensorflow-gpu 1.4版本(cuda-8 只适用tf-1.4)。
很简单,如果没安装pip的话,要先安装pip:
sudo apt-get install python-pip
- 1
安装完成后,输入:
pip install tensorflow-gpu==1.4
- 1
即可完成tensorflow-gpu 1.4版本的安装。
需要注意的是,tensorflow-gpu版本需要完成cuda和cudnn的安装才能运行。这个时候的tensorflow是不能运行的,在python中输入import tensorflow
会报错。
请往下读。
三、安装cuda
为了兼容,我们这里安装cuda 8。
网上找了很多教程,结果还是在这里卡了很久,因为很多都不适用。别人用起来正常,在我这里可能就出错了。最后,我选择了相当简单粗暴的一种方法:
打开终端,输入如下命令:
sudo apt install nvidia-cuda-dev nvidia-cuda-toolkit nvidia-nsight nvidia-visual-profiler
- 1
打完收工,安装完毕!
四、安装 cudnn
兼容原因,这里安装cudnn 6。
首先,从官网下载压缩包cudnn-8.0-linux-x64-v6.0.tgz
。免费下载,需要登录,如无账号请自行注册。下载地址为https://developer.nvidia.com/cudnn
下载完成后得到压缩包:
对压缩包进行解压,得到一个名为cuda的文件夹。正常来说,我们需要将cuda中的一些文件复制到/usr/local/cuda-8.0/***
的路径下,并配置相关路径。但这里,我们的做法有点不同。
因为,我们是用apt-get安装的,所以,我们是不存在/usr/local/cuda-8.0/***
路径的,也不需要配置环境路径。但复制还是要复制的,不过位置变了一下,这里是第二个卡住我的问题点,找了很久,知乎的一位答友吕俊奇的回答给了我启发(回答的链接我会放到文末的参考中),这里要做如下操作:
第一,将解压出来的cuda/include/
下的cudnn.h
文件复制到/usr/local/include/
目录下。
第二,将cuda/lib64/
目录下的所有文件复制到python环境的tensorflow包的tensorflow/python/
目录下,比如,对我来说该路径就是/media/raini/deepin/software/deepin/anoconda3/envs/py35/lib/python3.5/site-packages/tensorflow/python
,这个路径因人而异,请参考我的路径自行查找。
第三,复制好了之后Python导入TF报错如下:
ImportError: /media/raini/deepin/software/deepin/anoconda3/envs/py35/lib/python3.5/site-packages/tensorflow/python/libcudnn.so.6: file too short
Failed to load the native TensorFlow runtime.
因为 libcudnn.so.6 和 libcudnn.so.6 都是 libcudnn.so.6.0.21的软连接,如下:
所以,重做一遍软连接:
raini@biyuzhe~$ rm /media/raini/deepin/software/deepin/anoconda3/envs/py35/lib/python3.5/site-packages/tensorflow/python/libcudnn.so.6
raini@biyuzhe~$ ln -s /media/raini/deepin/software/deepin/anoconda3/envs/py35/lib/python3.5/site-packages/tensorflow/python/libcudnn.so.6.0.21 /media/raini/deepin/software/deepin/anoconda3/envs/py35/lib/python3.5/site-packages/tensorflow/python/libcudnn.so.6
raini@biyuzhe~$ rm /media/raini/deepin/software/deepin/anoconda3/envs/py35/lib/python3.5/site-packages/tensorflow/python/libcudnn.so
raini@biyuzhe~$ ln -s /media/raini/deepin/software/deepin/anoconda3/envs/py35/lib/python3.5/site-packages/tensorflow/python/libcudnn.so.6.0.21 /media/raini/deepin/software/deepin/anoconda3/envs/py35/lib/python3.5/site-packages/tensorflow/python/libcudnn.so
至此,安装全部完成。我们测试一下是否安装成功。
在测试之前,埋一下前面的坑。
关于bumblebee版显卡驱动在深度学习训练中的开启和关闭:
在进行训练前,在终端输入sudo tee /proc/acpi/bbswitch <<< ON
,可开启显卡。
在训练结束后,在终端输入sudo tee /proc/acpi/bbswitch <<< OFF
,可关闭显卡。
开启显卡在终端中打开python,并尝试引入tensorflow:
python
>>> import tensorflow as tf
- 1
- 2
如果没有安装成功,会报错。
如果没有报错,那说明安装的没有问题。继续输入:
>>> sess=tf.Session()
- 1
会输出显卡信息:
好了,恭喜,到了这里,你已经完成了全部内容,祝你好运!
参考
[1] Deepin15.4 下 CUDA 配置方法
[2] deepin15.5下安装tensorflow
[3] Ubuntu16.04无法安装CUDA吗? - 吕俊奇的回答 - 知乎
更多推荐
所有评论(0)