欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Ubuntu16.04系统下Anaconda2(Python2.7)中搭建Tensorflow(1.2.0)环境

程序员文章站 2022-07-12 20:17:38
...

(背景:当前科研工作中要复现一篇Paper,对于环境要求是Python-2.7 + Tensorflow-1.2.0。)

1、在当前的python环境下创建tensorflow子环境(务必指明python版本):

conda create tensorflow python=2.7

conda activate tensorflow

conda deactivate
Ubuntu16.04系统下Anaconda2(Python2.7)中搭建Tensorflow(1.2.0)环境
成功在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
Ubuntu16.04系统下Anaconda2(Python2.7)中搭建Tensorflow(1.2.0)环境
在线 pip 安装 tensorflow1.2.0 成功

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

Ubuntu16.04系统下Anaconda2(Python2.7)中搭建Tensorflow(1.2.0)环境
使用 “conda list” 命令查看,发现tensorflow-gpu包已经安装好

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

Ubuntu16.04系统下Anaconda2(Python2.7)中搭建Tensorflow(1.2.0)环境
提示找不到 libcusolver.so.8.0 文件

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

Ubuntu16.04系统下Anaconda2(Python2.7)中搭建Tensorflow(1.2.0)环境
当前CUDA版本为9.0,不符合tensorflow1.2.0所需要的8.0版本

3、安装CUDA-8.0并测试:

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

Ubuntu16.04系统下Anaconda2(Python2.7)中搭建Tensorflow(1.2.0)环境
安装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

Ubuntu16.04系统下Anaconda2(Python2.7)中搭建Tensorflow(1.2.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 #**
Ubuntu16.04系统下Anaconda2(Python2.7)中搭建Tensorflow(1.2.0)环境
标题

值得注意的是,使用 vim 进入~/.bashrc文件编辑界面后,先使用输入 “i” 进入 “insert” 编辑模式,编辑完成后,先按 “ESC”,而后输入 ":wq!",回车后即可退出编辑,(别忘了退出后用 “source” 命令**修改)。

Ubuntu16.04系统下Anaconda2(Python2.7)中搭建Tensorflow(1.2.0)环境
使用 nvcc -V 命令查看CUDA版本,已经是8.0正确

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

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

Ubuntu16.04系统下Anaconda2(Python2.7)中搭建Tensorflow(1.2.0)环境
报错!缺少libcudnn.so.5文件,说明cudnn的版本不正确

原来,Tensorflow1.2.0需要cuDnn的版本是5.0,因此我们需要下载安装对应CUDA-8.0的cuDnn-5.0:

4、安装cuDnn-5.0并测试:

Ubuntu16.04系统下Anaconda2(Python2.7)中搭建Tensorflow(1.2.0)环境
确认版本

下载网址为https://developer.nvidia.com/rdp/cudnn-archive

注意,下载cuDnn需要登录英伟达官网,所以需要使用邮箱注册账户,且得通过邮件**才可登录下载。

由于我始终收不到邮件,用了三个邮箱,点击resend多次,都收不到,所以直接在校内论坛西电睿思上下载成功。

Ubuntu16.04系统下Anaconda2(Python2.7)中搭建Tensorflow(1.2.0)环境
解压后的cuDnn5.0安装包

 

Ubuntu16.04系统下Anaconda2(Python2.7)中搭建Tensorflow(1.2.0)环境
其中的lib文件夹
Ubuntu16.04系统下Anaconda2(Python2.7)中搭建Tensorflow(1.2.0)环境
其中的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版本:

Ubuntu16.04系统下Anaconda2(Python2.7)中搭建Tensorflow(1.2.0)环境
当前环境中的CUDA(指向CUDA-8.0)的默认cuDnn的版本是5.0.5

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

Ubuntu16.04系统下Anaconda2(Python2.7)中搭建Tensorflow(1.2.0)环境
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,报错!

Ubuntu16.04系统下Anaconda2(Python2.7)中搭建Tensorflow(1.2.0)环境
Spyder内部显示没有tensorflow包

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

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

conda install spyder
Ubuntu16.04系统下Anaconda2(Python2.7)中搭建Tensorflow(1.2.0)环境
重新安装的Spyder背景色变为深色,同时已经可以成功调用安装在其所在环境中的tensorflow包

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

Ubuntu16.04系统下Anaconda2(Python2.7)中搭建Tensorflow(1.2.0)环境
感谢Google!感谢NVIDIA!感谢CCTV!