需要在一个Ubuntu的docker镜像中配置tensorflow-gpu环境,按照官网的instruction来一步一步做(安装CUDA的地方有点不同):https://www.tensorflow.org/get_started/os_setup
Step 1 安装Anaconda(python 2.7)
官方网站:https://www.continuum.io/downloads#linux
右键复制下载地址:https://repo.continuum.io/archive/Anaconda2-4.3.0-Linux-x86_64.sh
用wget将安装包下载到当前目录。
刚刚下载下来这个文件不是可执行文件,先加权限,在终端输入命令:sudo chmod +x xxxx.sh
。
加了权限以后,直接运行 ./xxxx.sh
。
安装包会自动将anaconda的相关路径加到全局环境变量PATH中。
Step 2 安装CUDA(8.0)
官方网站:https://developer.nvidia.com/cuda-downloads
查看了一下系统的版本号cat /etc/issue
,然后根据版本不同来选择下载,然后发现在镜像里面下载不了被墙了,就在外面下好,然后拷贝到镜像里面(可以用winscp这个软件)。
安装包里面有三个文件:Nvidia toolkit,CUDA-samples和CUDA安装包。
先解压安装包sudo sh cuda-xxx.run -extract=/保存的绝对路径
,然后只运行解压后的cuda-xxx.run就可以了,没必要安装那么多。
一般会自动给/usr/local/cuda-x.0
文件夹建一个symbolic link为/usr/local/cuda
,两个地址是等价的。
Step 3 安装加速库cuDNN
官方网址:https://developer.nvidia.com/cudnn
要下载压缩包需要先注册一个账号,然后下载。
只需要解压压缩包,然后将里面的文件拷贝到cuda路径下面。
tar xvzf cudnn-8.0-linux-x64-v5.1-ga.tgz
sudo cp -P cuda/include/cudnn.h /usr/local/cuda/include
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
接着环境变量LD_LIBRARY_PATH
里面将CUDA动态链接库的路径加上,一般是/usr/local/cuda/lib64
。
(加到用户自己的环境中,编辑/home/user/.bashrc
。sudo vim /home/user/.bashrc
,在末尾加一行export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
。保存退出后,让环境立即生效source /home/user/.bashrc
。)
Step 4 安装tensorflow(GPU版本)
首先创建一个虚拟环境conda create -n tensorflow python=2.7
,会在这个环境里面另外安装一个python 2.7和相关的库。
打开虚拟环境source activate tensorflow
。
设置好要tensorflow下载的地址:
export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-0.12.1-cp27-none-linux_x86_64.whl
安装tensorflow:
pip install --ignore-installed --upgrade $TF_BINARY_URL
Step 5 测试tensorflow
$ python
\> import tensorflow as tf
\> hello = tf.constant('Hello, TensorFlow!')
\> gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.1)
\> sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))
\> print(sess.run(hello))
Hello, TensorFlow!
\> a = tf.constant(10)
\> b = tf.constant(32)
\> print(sess.run(a + b))
42
\>
如果配置GPU环境成功,可以用nvidia-smi来查看测试前后GPU内存的变化。我这里设置了使用GPU内存的10%。
到此,环境配置完成。