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
成功在Anaconda2(base)的环境下创建tensorflow子环境,验证python版本正确

 

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
在线 pip 安装 tensorflow1.2.0 成功

此时,conda下的tensorflow的子环境√,python2.7版本√,tensorflow-gpu1.2.0版本√:

使用 “conda list” 命令查看,发现tensorflow-gpu包已经安装好

但是,尝试 import tensorflow包出现问题:

提示找不到 libcusolver.so.8.0 文件

可以确认是CUDA出现问题,在.usr/local.cuda/lib64文件夹查看,确实没有该8.0文件,但是有对应的9.0文件。

当前CUDA版本为9.0,不符合tensorflow1.2.0所需要的8.0版本

3、安装CUDA-8.0并测试:

CUDA下载地址:https://developer.nvidia.com/cuda-80-ga2-download-archive

安装CUDA-8.0,切记询问安装确定driver时选择否(no),其他都是yes

 

此时,在系统中,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

我们发现原CUDA文件夹(提示找不到lib***.so.8.0文件的位置)中出现了所需的8.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” 命令激活修改)。

使用 nvcc -V 命令查看CUDA版本,已经是8.0正确

可以看见,此时CUDA-8.0已经正确。

再次尝试在Anaconda2(Python2.7)下的Tensorflow环境中查看Tensorflow包是否成功:

报错!缺少libcudnn.so.5文件,说明cudnn的版本不正确

原来,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多次,都收不到,所以直接在校内论坛西电睿思上下载成功。

解压后的cuDnn5.0安装包

 

其中的lib文件夹
其中的include文件夹

开始操作:

#进入该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版本:

当前环境中的CUDA(指向CUDA-8.0)的默认cuDnn的版本是5.0.5

解决了cuDnn问题后,再次查看Tensorflow是否安装成功:

Tensorflow 的版本1.2.0和安装路径无误

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,报错!

Spyder内部显示没有tensorflow包

6、IDE(Spyder)中的环境搭建成功:

#在当前的tensorflow环境中重新安装一个spyder编译器

conda install spyder
重新安装的Spyder背景色变为深色,同时已经可以成功调用安装在其所在环境中的tensorflow包

总结:搭建环境是深度学习最基础的第一步,必须在对应的环境下才可以复现特定的代码。搭建环境同时也是非常麻烦的过程,因为每台电脑的情况都不同,每个代码所需要的环境中的各项配置要求也不同,各项配置之间的相互依赖关系也不同,因此,需要反复的尝试,遇到问题解决问题,这个过程必须充满耐心。

感谢Google!感谢NVIDIA!感谢CCTV!

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章