点一点阅读更舒适~

关于在ubuntu上源码安装TensorFLow-1.7.0-cuda9.1-cudnn7.1.2过程中问题解决方案

TensorFlow1.7.0-cuda9.1-cudnn7.1.2-linux86-64.cp36的安装包地址:https://space.oldpan.me/d/8018f162a3b2477e9b8b/

前言

实验室服务器上装载的cuda版本是最新的9.1,和从官网下载下来的TensorFlow不匹配,因为官方的是通过cuda9.0进行编译的。因此,这篇文章讨论关于Tensorflow源码安装的一些心得和过程,讨论安装Tensorflow版本兼容问题和cuda版本选择问题,最终实现在ubuntu16.04下通过源码安装TensorFlow-1.7.0,可以在cuda-9.1-cudnn7.1.2环境下正常工作。

过程详解

安装方法

安装TensorFlow的方法有很多,大多数人选择whl包安装,也就是从官网下载编译好的whl包并进行下载,通过pip命令下载并安装。这种方法是最为适用和最为普通的,一般来说只要按照正常操作安装和使用TensorFlow-CPU版是没问题的。但是——好吧,为什么要安装cuda9.1呢?为什么不用cuda9.0呢?很无奈啊,有新的当然用新的,但这也导致了不兼容的问题,到目前为止,官网编译好的安装包并不支持cuda9.1,因此我们需要自己进行编译。

也就是我们选择第二条路,源码安装的方法。

源码安装

源码安装比起直接用whl包来安装稍微复杂一些,安装教程很多地方都写了出来,我这里也不赘述了,

下面是TensorFlow源码安装的教程地址:

其中第二篇为官方的教程,官方教程中有相关的步骤以及常见编译遇到的问题,强烈推荐。

其中我遇到的问题是bazel编译工具版本问题,现在从ppa上apt-get进行下载都是0.12.0 stable版本,用这个版本对TensorFlow进行编译时会出现编译错误的,换成0.11.1版本就好了。在第一篇教程中有详细的安装步骤。

遇到的问题

我安装上面的教程上面的步骤编译好TensorFlow包之后,编译成功了,使用我的cuda9.1和cudnn7.1.2,但是在安装我编译好的whl之后还是不能用。

出现了以下问题:ImportError: libcublas.so.9.1: cannot open shared object file: No such file or directory 

要注意,这个问题与你的编译文件无关,你系统是cuda9.1你安装的TensorFlow是cuda9.1,但上面的问题还是出现,那么说明你在安装cuda9.1的时候有一些配置文件没有正确进行配置,也就是一些文件找不到?找不到并不是意味着不在,而是没有通过正确的路径来找。

依次执行以下命令(软连接):

sudo ln -s /usr/local/cuda-9.1/lib64/libcublas.so.9.1 /usr/lib/libcublas.so.9.1
sudo ln -s /usr/local/cuda-9.1/lib64/libcusolver.so.9.1 /usr/lib/libcusolver.so.9.1
sudo ln -s /usr/local/cuda-9.1/lib64/libcudart.so.9.1 /usr/lib/libcudart.so.9.1
sudo ln -s /usr/local/cuda-9.1/lib64/libcudnn.so.7 /usr/lib/libcudnn.so.7
sudo ln -s /usr/local/cuda-9.1/lib64/libcufft.so.9.1 /usr/lib/libcufft.so.9.1
sudo ln -s /usr/local/cuda-9.1/lib64/libcurand.so.9.1 /usr/lib/libcurand.so.9.1

将相应的文件和你的cuda路径进行软连接,这是默认安装路径,如果你的路径不一样,需要修改上面的代码!

软连接后就可以正常import TensorFlow了。cuda,cudnn正常工作。

  点赞
本篇文章采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可
转载请务必注明来源: https://oldpan.me/archives/ubuntu-source-install-tensorflow-1-7-0-cuda9-1-cudnn7-1-2

   欢迎关注Oldpan博客微信公众号,同步更新博客深度学习文章。


发表评论

电子邮件地址不会被公开。 必填项已用*标注

评论审核已启用。您的评论可能需要一段时间后才能被显示。