关于在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源码安装的教程地址:

  • http://www.python36.com/install-tensorflow141-gpu/
  • https://www.tensorflow.org/install/install_sources#common_installation_problems

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

其中我遇到的问题是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正常工作。

此文由腾讯云爬虫爬取,文章来源于Oldpan博客

欢迎关注Oldpan博客公众号,持续酝酿深度学习质量文:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏C#

DotNet加密方式解析--非对称加密

    新年新气象,也希望新年可以挣大钱。不管今年年底会不会跟去年一样,满怀抱负却又壮志未酬。(不过没事,我已为各位卜上一卦,卦象显示各位都能挣钱...)...

4808
来自专栏张善友的专栏

Mix 10 上的asp.net mvc 2的相关Session

Beyond File | New Company: From Cheesy Sample to Social Platform Scott Hansel...

2527
来自专栏杨龙飞前端

scrollto 到指定位置

2494
来自专栏落花落雨不落叶

canvas画简单电路图

59111
来自专栏转载gongluck的CSDN博客

cocos2dx 打灰机

#include "GamePlane.h" #include "PlaneSprite.h" #include "BulletNode.h" #include...

5316
来自专栏魂祭心

原 canvas绘制clock

4024
来自专栏张善友的专栏

LINQ via C# 系列文章

LINQ via C# Recently I am giving a series of talk on LINQ. the name “LINQ via C...

2625
来自专栏Ceph对象存储方案

Luminous版本PG 分布调优

Luminous版本开始新增的balancer模块在PG分布优化方面效果非常明显,操作也非常简便,强烈推荐各位在集群上线之前进行这一操作,能够极大的提升整个集群...

3095
来自专栏pangguoming

Spring Boot集成JasperReports生成PDF文档

由于工作需要,要实现后端根据模板动态填充数据生成PDF文档,通过技术选型,使用Ireport5.6来设计模板,结合JasperReports5.6工具库来调用渲...

1.2K7
来自专栏陈仁松博客

ASP.NET Core 'Microsoft.Win32.Registry' 错误修复

今天在发布Asp.net Core应用到Azure的时候出现错误InvalidOperationException: Cannot find compilati...

4808

扫码关注云+社区