Ubuntu16.04系统下Anaconda2(Python2.7)中搭建Tensorflow(1.2.0)环境
(背景:当前科研工作中要复现一篇Paper,对于环境要求是Python-2.7 + Tensorflow-1.2.0。)
1、在当前的python环境下创建tensorflow子环境(务必指明python版本):
conda create tensorflow python=2.7
conda activate tensorflow
conda deactivate
2、安装Tensoflow1.2.0并测试:
(1)(失败)在https://pypi.org/project/tensorflow/1.2.0/#files下载对应版本的tensorflow的.whl安装包,用pip安装提示不符合platform;
(2)(成功)用pip在线安装:
pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.2.0-cp27-cp27m-linux_x86_64.whl
此时,conda下的tensorflow的子环境√,python2.7版本√,tensorflow-gpu1.2.0版本√:
但是,尝试 import tensorflow包出现问题:
可以确认是CUDA出现问题,在.usr/local.cuda/lib64文件夹查看,确实没有该8.0文件,但是有对应的9.0文件。
3、安装CUDA-8.0并测试:
CUDA下载地址:https://developer.nvidia.com/cuda-80-ga2-download-archive
此时,在系统中,CUDA8.0和CUDA9.0共存,而默认的CUDA为CUDA9.0:
首先建立软连接:
sudo rm -rf /usr/local/cuda #删除之前生成的软链接
sudo ln -s /usr/local/cuda-10.0 /usr/local/cuda #生成新的软链接
把CUDA链接至新安装的CUDA8.0而非默认的9.0
而后,修改环境变量,需要使用 vim 命令在 bashrc 文件中修改环境变量,使得安装生效:
vim ~/.bashrc #进入编辑界面
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
#同时,
#替换原来语句中的cuda-9.0为cuda-8.0,
#替换原来语句中的Anaconda3为Anacodna2,
#替换原来语句中的python3.6为python2.7,
#保存退出返回终端输入界面
source ~/.bashrc #**
值得注意的是,使用 vim 进入~/.bashrc文件编辑界面后,先使用输入 “i” 进入 “insert” 编辑模式,编辑完成后,先按 “ESC”,而后输入 ":wq!",回车后即可退出编辑,(别忘了退出后用 “source” 命令**修改)。
可以看见,此时CUDA-8.0已经正确。
再次尝试在Anaconda2(Python2.7)下的Tensorflow环境中查看Tensorflow包是否成功:
原来,Tensorflow1.2.0需要cuDnn的版本是5.0,因此我们需要下载安装对应CUDA-8.0的cuDnn-5.0:
4、安装cuDnn-5.0并测试:
下载网址为https://developer.nvidia.com/rdp/cudnn-archive。
注意,下载cuDnn需要登录英伟达官网,所以需要使用邮箱注册账户,且得通过邮件**才可登录下载。
由于我始终收不到邮件,用了三个邮箱,点击resend多次,都收不到,所以直接在校内论坛西电睿思上下载成功。
开始操作:
#进入该cudnn解压后的文件夹后,拷贝一些东西到指定目录
$cd cuda5.0
$sudo cp lib64/lib* /usr/local/cuda/lib64/
$sudo cp include/cudnn.h /usr/local/cuda/include/
#接下来更新cuDNN库文件的软连接:
$ sudo chmod +r libcudnn.so.5.0.5
$ sudo ln -sf libcudnn.so.5.0.5 libcudnn.so.5
$ sudo ln -sf libcudnn.so.5 libcudnn.so
$ sudo ldconfig
操作后查看最新的cuDnn版本:
解决了cuDnn问题后,再次查看Tensorflow是否安装成功:
5、终端下的环境搭建成功:
至此,终于搭建好了Ubuntu-16.04 + Anaconda-2 + Python-2.7 + Tensorflow-1.2.0 + CUDA-8.0 + cuDnn-5.0.5的环境!
在终端中的tensorflow环境下输入 “spyder” 打开Spyer 这个 IDE,在其中内嵌的 Ipython命令 行区域 import temsorflow,报错!
6、IDE(Spyder)中的环境搭建成功:
#在当前的tensorflow环境中重新安装一个spyder编译器
conda install spyder
总结:搭建环境是深度学习最基础的第一步,必须在对应的环境下才可以复现特定的代码。搭建环境同时也是非常麻烦的过程,因为每台电脑的情况都不同,每个代码所需要的环境中的各项配置要求也不同,各项配置之间的相互依赖关系也不同,因此,需要反复的尝试,遇到问题解决问题,这个过程必须充满耐心。