在之前我是有装过好几次tensorflowGPU版的,包括windows、linux(没有装过mac)都有,这次我为什么又装一次呢? 我自己脑子短路 以为我的环境玩坏了或是版本变了,原来的代码跟不上了。不管怎么说我又又又重装了一次tensorflow-GPU版(我真是太难了),虽然说重装了好几次,但是中间的时间相隔还是比较久,我还是忘了,很多细节我也不可能完全记得,这次我把细节和教训写下来,以防下次需要,同时也为推动我国人工智能的发展做出我的一小小小小步贡献(手动狗头)。
这一次我是在linux上装的,我的系统是ubuntu16,先理一下作战路线---安装tensorflow gpu版需要哪几步呢?
1.下载并安装cuda
2.下载并安装cudnn
3.安装tensorflow-gpu版
大致就是这三步,不过如果你中途出错了,那肯定不止这几步,不过没关系我会尽量将可能遇到的错误和结局办法写出来。在开始第一步之前,确保你的电脑上装了英伟达的显卡驱动,因为毕竟cuda是英伟达的技术(一般都有,如果没有请自行百度安装,不会太难)。下面我们先确认一下你要安装的版本,你可以打开这个网站来查看对应的版本(如果你的版本不对应,那么肯定是会出问题的)https://tensorflow.google.cn/install/source,尽管我给出版本的对应图,我还是建议你提前看一下这个网站,毕竟时代变化的太快了,说不定哪天就更新了呢。
在这里我推荐的版本是cuda9或者cuda10,tensorflow装1.12.0以上的,python装3.5-3.6(在我看来这个版本更不容易出错一点,他们和其他的python库兼容也会比较好),在接下来的讲解中我会使用的版本是 cuda9.0,tensorflow-gpu1.12.0,python3.6
在这个过程中需啊哟注意的是可能 你的GCC版本大于4.8,那么为了尽可能的少出错,我还是推荐你把gcc降级到4.8
使用如下命令来选择gcc的版本并安装:
sudo apt-get install gcc-4.8
安装完成后输入命令gcc --verison查看gcc的版本
一、下载并安装cuda
打开这个链接下载cuda https://developer.nvidia.com/cuda-toolkit-archive 选择cuda9.0,点那个红框里面的就可以下载了
下好了之后,以root的身份打开命令行(必须是root!!!),cd到下载的那个文件夹下,照着命令打就好:
如果有图形化界面则需要禁用x-window服务
sudo service lightdm stop
使用如下命令安装
sh cuda_8.0.61_375.26_linux.run
开始安装之后,除了那个安装Diver什么的其他的都按accept或者y(因为我们已经安装了显卡驱动)
安装完成之后,配置环境变量,使用命令:vi ~/.bashrc
按i插入 在文件里面添加如下内容:
export CUDA_HOME=/usr/local/cuda-9.0
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-9.0/bin:$PATH
按 esc退出编辑模式,然后输入:wq
保存退出
这个时候先不要进行下一步,在命令行里面输入 reboot(稳如老狗),重启一遍,然后再进入下一步。
二、下载并安装cudnn
下载cudnn的话,打开这个链接https://developer.nvidia.com/rdp/cudnn-download即可下载,但是这个下载这个需要你注册一个账号,这个没什么大不了的,注册一个就好,点击蓝色框中的进行下载。
下载下来之后在命令行中使用如下命令解压(这个文件改成你自己的cudnn的文件名):
tar -zxvf cudnn-8.0-linux-x64-v5.0-ga.tgz
将解压出来的文件放到对应的文件夹中去,当我们安装好了cuda之后他默认应该是在 /usr/local/cuda-9.0 这个地方,把解压出来的include文件里面所有的东西都放到 /usr/local/cuda-9.0/include下,lib64目录下的同理。你可以用鼠标复制粘贴或者使用如下命令来复制:
sudo cp cuda/include/* /usr/local/cuda-9.0/include
sudo cp cuda/lib64/* /usr/local/cuda-9.0/lib64
三、安装tensorflow-gpu版
接下来的事就简单了,激活你的Python环境,使用命令安装tensorflow 。 (如果你用的不是虚拟环境,那么只要像你平常安装包一样安装tensorflow-gpu就好了,如果你不指定版本的话,他会默认下载最新的版本):
pip install tensorflow-gpu==1.12.0
新建一个py文件然后输入测试代码:
import tensorflow as tf
hello=tf.constant('hello,tensorflow')
sess=tf.Session()
print(sess.run(hello))
结果:
b'hello,tensorflow'
如果出现类似以下信息,则安装成功
但是如果里面杂带了什么什么文件 not found或者是打开失败 那么就没成功,你需要接着往下看。
可能会出现的疑难杂症:
尽管你可能老老实实按说明做,但是天有不测风云,老天爷就是要报错,这个谁顶得住呢?不用担心 我已经做好了准备
错误1:
ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory
面对这样的错误,首先检查你的tensorflow和cuda以及cudnn的版本是否正确!!!!!!!
不正确的话请重装。
如果还没解决,那么检查你的环境变量是否书写正确,vi ~/.bashrc 打开查看,不正确请修改。
如果还还没解决,那么说明这个鬼文件他是真的没找到,检查 /usr/local/cuda-9.0/lib64 下是否有 libcublas.so.9.0这个文件(文件名可能有不同,可用同样手段解决)
如果有,终端输入:
sudo ldconfig /usr/local/cuda-9.0/lib64
这个时候你可能又会报错,像这样
这个是说,libcudnn.so.7这个东西本来该是个软链接,但是他现在是个其他格式的文件,那么为了解决这个问题,你需要创建这个软链接。像这样,注意!!你的文件名和我的可能不一样:
这样做了之后应该就没有错误了。
如果有什么写错的地方,欢迎大家指正,有什么不懂的地方也欢迎和我交流。
什么时候最快乐呢?我最快乐的时候就是在写完一篇博客之后发一张美女的照片~~嘿嘿嘿