Ubuntu+Anaconda+tensorflow 深度学习工作站环境配置
TensorFlow CPU版的安装
cpu版本的安装过程可谓是非常简单,gpu版本是真有点麻烦。cpu版本安装这里两种方案,一种安装在整个系统环境中,一种借助anaconda创建个python环境安装想要的TensorFlow版本。推荐后者但安装中牵涉到的Anaconda安装与环境创建请直接参考下文中安装TensorFlow-gpu版本的情况。
Anaconda安装与使用链接: https://blog.csdn.net/qq_31610789/article/details/80646276
建立一个自己的anaconda环境
接着进行下面这些指令:
安装pip
因为后面直接用这个工具来安装TensorFlow的。
sudo apt-get install python-pip
安装TensorFlow
pip install tensorflow
终端进入python查看TensorFlow安装是否完成
python
import tensorflow as tf
tf.__version__
测试一下代码:
进入终端进入python或者建个.py文件内容如下:
import tensorflow as tf
a=tf.constant([1.0,2.0,3.0],shape=[3],name='a')
b=tf.constant([1.0,2.0,3.0],shape=[3],name='b')
c=a+b
sess=tf.Session(config=tf.ConfigProto(log_device_placement=True))
printsess.run(c)
TensorFlow GPU版的安装
目前这个方案用了半年,好几台电脑都这样配置,用着没啥大问题。显卡类型:Titan X
版本推荐:ubuntu 16.04 LTS, cuda9.0, cudnn7.0, tensorflow1.5到1.7-gpu, Anaconda3.5 (创建python3.x(和tf1.5的版本对应py3.6))
注意版本,下面给了我实测可用的搭配:
tensorflow1.4---cuda8.0----cudnn5/6
tensorflow1.5---cuda9.0----cudnn7.0
tensorflow1.5---cuda9.1----cudnn7.1
下载或者安装的时候能用清华镜像源的尽量用,比较快。
安装步骤: 1. NVIDIA 显卡驱动-> nvidia-cuda-toolkit-> cuda9.1->cudnn
2. 安装anaconda-> 创建对应python环境->环境下安装TensorFlow->安装要用的IDE(spyder, jupyter)
3. 要用pytorch的话就安装,然后可以把创建好的环境导入pyCharm里面直接用。
显卡驱动:
终端(Ctrl+T)输入并执行:
sudo apt-get update
选择系统设置->软件更新->附加驱动->选择nvidia最新驱动->应用更改。
Apply Changes 后,输入密码,等待时间可能10+分钟或者更久,遇到失败过,然后重启再装一次。
然后Restart即可,启动之后Dash搜索nvidia打开或者终端输入:nvidia-settings后如下界面。四个Titan嗨啊。
验证安装成功:
终端输入:
nvidia-settings
Dash搜索nvidia打开Nvidia xxx查看是否安装完毕。
添加cuda 的环境变量后,程序才能找到它并且调用。
执行
sudo gedit ~/.bashrc
最后添加下面这些环境变量:
export LD_LIBRARY_PATH=”$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64”
export CUDA_HOME=/usr/local/cuda
export PATH="$CUDA_HOME/bin:$PATH"
保存推出后,执行下面的代码以使上面文件生效:
source ~/.bashrc
之后就可以在新的终端执行下面的命令查看 cuda环境变量是否设置成功额。
nvcc --version
#或者
nvcc -V
2 nvidia-cuda-toolkit安装
(这玩意是啥,别的教程里面看到了,我不安装用了一段时间也没出现问题)
sudo apt-get install nvidia-cuda-toolkit
查看GPU使用情况:
nvidia-smi -l 1
也可以用这个命令查看:
watch -n0.1 "nvidia-settings -q GPUUtilization -q useddedicatedgpumemory"
其实这条命令就是在终端中显示‘NVIDIA X serve settings’中的一些信息。
3. install cuda
NVIDIA官网的cuda安装说明:
http://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#pre-installation-actions
cuda安装文件下载:https://developer.nvidia.com/cuda-toolkit-archive
可以根据以下信息进行安装包的校验,不过一般安装包也不会失效。
http://developer.nvidia.com/cuda-downloads/checksums
md5sum cuda-repo-ubuntu1604-xxxxxxxxxxx.deb
最后一部分给出了官方的安装步骤,照做即可(注意终端cd到这个deb文件所在目录)
sudo dpkg -i cuda-repo-ubuntu1604-xxxxxxxxxxx.deb
sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda
最后一步等几分钟完毕。
之前是说cuda8.0不支持gcc5.0以上的问题。但9.0 的gcc问题基本已经不存在了。
gcc –v
reference: http://www.cnblogs.com/in4ight/p/6626708.html
sudo apt-get install g++-4.9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 10
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30
sudo update-alternatives --set cc /usr/bin/gcc
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30
sudo update-alternatives --set c++ /usr/bin/g++
安装 cuDNN x.x
注意本文开头的版本对应关系啊。
附个官方简介:http://on-demand.gputechconf.com/gtc/2015/webinar/gtc-express-cuDNN-larry-brown.mp4
下载地址:https://developer.nvidia.com/rdp/cudnn-archive
这个得先花两分钟注册一下账号才给下载。
因为没找到7.1.2for linux 所在退而求其次,选择划横线的那个cuDNN v7.0.5 Library for Linux
不过我之前下载的是 cudnn-9.0-linux-x64-v7.1 这次不知道为什么官网没了。可能是暂时下架了。那就用上面的也行。
先解压文件:
或者用这些指令
tar -xvf cudnn-xxxxxxxx.tgz
再把解压后相应的文件拷贝到对应的CUDA目录下即可。
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
其实就是复制文件到cuda安装目录里面,再修改可读写权限。
注:因为只是cudnn安装方式是将库文件放置再cuda目录下,所以版本万一不对也不要慌,可以重新删除再安装新的版本。
接下来编辑一个path环境变量文档:
sudo gedit ~/.bashrc
将cuda的环境变量加到打开的文件最后
export LD_LIBRARY_PATH=”$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64”
export CUDA_HOME=/usr/local/cuda
export PATH="$CUDA_HOME/bin:$PATH"
文件生效:
source ~/.bashrc
若上一行代码报错没关系,关闭相关窗口,重启终端,再打开文件看看写进去的东西还在就行。
接下来就可以安装Anaconda了。
安装Anaconda
这个对Anaconda版本要求不高,反正都是自己创建对应的python版本环境,境内网速你懂的,还是用清华镜像源吧。
Anaconda安装与使用链接: https://blog.csdn.net/qq_31610789/article/details/80646276
清华镜像源download link: https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
Anaconda内创建python环境:
python版本问题:
根据你要下载的TensorFlow版本决定,因为我还是清华镜像源下载,所以看看他们提供的镜像有哪些:
网址:https://mirrors.tuna.tsinghua.edu.cn/help/tensorflow/
我能找到的最新的GPU版本就是tensorflow1.5的了,对应python3.6
然后创建环境吧:
conda create -n jz python=3.6
环境创建完成之后,激活环境,就可以pip安装TensorFlow啦。但最好把pip升级一下吧,不然可能会失败的。
source activate jz
pip更新之后直接用pip安装TensorFlow:
就是刚刚截图的清华镜像源的TensorFlow安装代码:
如果上面复制代码出错,就写成一行形式如下:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ https://mirrors.tuna.tsinghua.edu.cn/tensorflow/linux/gpu/tensorflow_gpu-1.5.0-cp36-cp36m-linux_x86_64.whl
很快就下载安装成功。
安装结束后,先测试一下:
如下图,创建的环境下进入python:
没有报错,基本没有问题了,并且按命令退出python了。
然后要使用spyder的用户注意了:得重新新环境下conda(我用pip失败)安装一下spyder,因为即使你创建的环境,打开spyder也是默认Anaconda自带的python版本,而不是你创建的环境的python版本,除非你安装的Anaconda自带的python版本正好和你需要正好对应。运行下面命令环境内安装spyder:
conda install spyder
# 上面默认会安装最新的spyder,但是有可能和本地创建的一些环境会发生冲突,做一最好还是指定一下版本。
conda install spyder==3.3.1 #Anaconda3-5.3.1 base 环境自带的spyder比较稳妥
安装结束了,下了这么多新的依赖包,显然如果不重新装个spyder不能用也在情理之中了。
接下来运行命令打开spyder:
spyder
打开后看到下面python是3.6.0是我们要的版本
创建个文件输入下面的测试代码:
import tensorflow as tf
with tf.device('/cpu:0'):
a=tf.constant([1.0,2.0,3.0],shape=[3],name='a')
b=tf.constant([1.0,2.0,3.0],shape=[3],name='b')
with tf.device('/gpu:0'):
c=a+b
sess=tf.Session(config=tf.ConfigProto(log_device_placement=True))
print(sess.run(c))
F5执行后,
大功告成!
注意事项与问题:
1. 版本对应,一旦cuda的版本要改是十分艰难的,弄不好就会发生卸载有残留,无法安装新cuda的问题,我只能重装系统了。
2. spyder要重装的问题,网上没什么这方面的问题,最坑。
3. 在境内的话,安装镜像源最好都用清华镜像源比较快。
4.如果遇到spyder黑屏的情况请参考这个:https://blog.csdn.net/wintersweetzeng/article/details/79959336
5.或者spyder遇到“Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2”
参考:https://blog.csdn.net/CliuGeek/article/details/78836598
本文为博主原创,转载请注明出处:https://blog.csdn.net/qq_31610789/article/details/80642709