参考官方指南

基本要求

官网测试过的源代码配置如下:

image

也就是说,按照这个版本安装的话不应该再产生版本的问题了。

我的配置

ubuntu 16

python 2.7

nccl 2.3

gcc 4.8.5

cuda 7.1.4

cudnn 9.0 (具体是9.0.176但是在./configure的那里不用输这么仔细,具体原因下面会说)

安装bazel 0.10

从源码编译安装

官方的【安装步骤】,我试了没用,查到【这个博客】才发现缺乏如下步骤。

应该要使用,./compile.sh编译,要等待几分钟。

image

编译后,最终生成的二进制文件bazel在当前目录的output/bazel下面

由于

image

把这个文件移动到venv/bin/bazel下面.

note:

安装version10的时候用这个方法没问题,我卸载干净之后用apt-get安装version21使用的是apt-get,官网有教程,行得通。

bazel版本问题

尝试bazel 0.21版本,产生如下报错:

ERROR: Config value cuda is not defined in any .rc file。

最后发现tf1.8的构建版本时使用了bazel 0.10,所以果断换成了bazel 0.10

bazel路径问题

如果没有进入虚拟环境之前可以使用bazel命令但是进入虚拟环境之后不行,提示没有这个文件,则:(把外部环境的bazel加入路径)

export PATH=/root/bin/:$PATH

此时再输入bazel就可以找到啦。

卸载bazel,重新安装

卸载参考:https://github.com/bazelbuild/bazel/issues/962

卸载完毕还是没法删除bazel.0.10,是因为虚拟环境下venv/bin/bazel存在。删除这个文件之后,终于显示删除成功。

安装nccl 2.3

因为无法登陆英伟达官方网站,所有采用giuthub的方式下载,按照build,install执行命令。

NCCL-SLA.txt不存在的问题

编译Tensorflow

按照官网的说明,我需要的是r1.8版本的,切换分支就可以了。

./configure 文件的配置

这一步也有挺多的坑

除了cuda,剩下的都选择n.

gpu的compute capability查询方法:nvidia-smi 查看最上面显示的是什么型号的gpu.

image

可以看到,我的四块gpu都是GeForce GTX 108...,然后在【英伟达给出的官网】上查询得知计算能力是6.1

nccl路径

安装完之后命令行会提示你路径。

gcc版本,我修改为gcc-4.8

cuda,cudnn版本

都不用输那么仔细的版本,因为可以看到./configure的输出如下:

exec env –

CUDA_TOOLKIT_PATH=/usr/local/cuda

CUDNN_INSTALL_PATH=/usr/lib/x86_64-linux-gnu

GCC_HOST_COMPILER_PATH=/usr/bin/gcc-4.8

LD_LIBRARY_PATH=:/usr/local/cuda/extras/CUPTI/lib64

NCCL_INSTALL_PATH=/data/lirong/py2/nccl/nccl/build

PATH=/root/bin/:/data/lirong/py2/venv_python2.7/bin/:/data/lirong/py2/venv_python2.7/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:

/sbin:/bin:/usr/games:/usr/local/games:/usr/local/cuda/bin

PYTHON_BIN_PATH=/data/lirong/py2/venv_python2.7/bin//python

PYTHON_LIB_PATH=/data/lirong/py2/venv_python2.7/lib/python2.7/site-packages

TF_CUDA_CLANG=0

TF_CUDA_COMPUTE_CAPABILITIES=6.1

TF_CUDA_VERSION=9.0

TF_CUDNN_VERSION=7

TF_NCCL_VERSION=2

TF_NEED_CUDA=1

TF_NEED_OPENCL_SYCL=0 \

bazel build这一步踩了很多的坑,成功之后。

image

然后按照官网的步骤没出错。

最后需要重新打开一次命令行窗口,再次import tensorflow。

image

安装成功

踩过的坑

bazel build编译的时候,如果遇到各种问题。command会提示Use --verbose_failures to see the command lines of failed build steps.,我之前一直没有注意,直到加了--verbose_failures这个条命令:

bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package --verbose_failures

试过,才发现完整的报错,然后很快google一下就解决了。

issue 1

报错

AttributeError: 'int' object attribute '__doc__' is read-only

Target //tensorflow/tools/pip_package:build_pip_package failed to build

...

ERROR: /data/lirong/py2/tensorflow/tensorflow/tools/api/generator/BUILD:27:1: Executing genrule //tensorflow/tools/api/generator:python_api_gen

failed (Exit 1)

解决

pip uninstall enum

apt-get install python-enum34

重新编译之后还会会报错,但是报的是issue 2了

issue 2

错误提示

ImportError: No module named enum

Target //tensorflow/tools/pip_package:build_pip_package failed to build

解决方法

pip uninstall enum

pip install enum34

tensorflow源码编译教程_源码编译安装tensorflow 1.8相关推荐

  1. python3 chm文档下载_python3.7.0官方参考文档 最新api文档 chm_Python教程_源雷技术空间...

    资源名称:python3.7.0官方参考文档 最新api文档 chm 1.新语法特性: PEP 563, 推迟评估类型注释 2.向后不兼容语法更改: async 和 await 现在保留关键字 3.新 ...

  2. 深度实践嵌入式linux系,深度实践嵌入式Linux系统移植 完整pdf_操作系统教程_源雷技术空间...

    资源名称:深度实践嵌入式Linux系统移植 完整pdf 第1章嵌入式系统架构与移植环境搭建2 第2章u-boot工程与编译系统14 第3章u-boot启动流程分析41 第4章ARM9/S3C2440 ...

  3. 绿豆pro前端APP源码v5.1.7编译教程,后端配置全开源安装搭建全图文操作萝卜白菜app通用说明带视频教程_多啦咪

    绿豆pro前端APP源码v5.1.7编译教程全图文操作萝卜白菜app通用: 图文一: 打开前端加载项目后,选择图下文件名为app.java文件打开操作修改位置如下: public static Str ...

  4. python 源码编译教程_python源码编译

    尝试通过源码自己编译 Python,使用的系统是 Ubuntu14.04 LTS. 首先去官网下载源码,地址:源码下载.下载完成之后,解压源码: 1tar -zxvf Python-2.7.12.tg ...

  5. java字节码和机器码_字节码和机器码

    字节码 字节码是一种中间码 字节码通常指的是已经经过编译,但与特定机器码无关,需要直译器转译后才能成为机器码的中间代码.字节码通常不像源码一样可以让人阅读,而是编码后的数值常量.引用.指令等构成的序列 ...

  6. 王者荣耀扫码登录教程,扫码登录王者荣耀怎么弄?

    王者荣耀扫码登录教程,对于经常玩王者荣耀的人来说,扫码登录王者荣耀是一种非常简单便捷的上号方式,这种方式无需卸载微信,可以直接扫码登录王者荣耀账号的上号神器! 1.什么是扫码登录? 答:扫码登录,就是 ...

  7. 4位格雷码的顺序编码_格雷码编码规则_格雷码有什么规律

    格雷码 典型的二进制格雷码简称格雷码,因1953年公开的弗兰克·格雷专利"Pulse Code Communication"而得名,当初是为了通信,现在则常用于模拟-数字转换和位置 ...

  8. java编译环境_搭建java编译环境

    搭建java编译环境 一.java编译环境 1.准备工作: 下载 jdk-7u79-linux-x64.tar.gz 压缩包 解压 tar zxf jdk-7u79-linux-x64.tar.gz ...

  9. 安卓模拟器安装教程_安卓 苹果 补丁安装教程 图文加视频教程

    免费补丁安装教程 安卓安装教程 安卓系统使用时主题: 主题:dt520_ mobile _all.cpk 封面:dt700_mobile_android.cpk 故安卓用户在解压完成直接将补丁包中的p ...

最新文章

  1. 上海市金山区财政局容灾项目竞争性谈判600万元
  2. OMG,隔壁老王竟然是个GEEK !
  3. java中方法的命名_Java方法中的参数太多,第5部分:方法命名
  4. SQL Server安装问题程序被挂起的错误解决办法
  5. 系统地址和服务器地址不一致,在打开远程通服务配置程序时检测系统配置时提示配置失败,映射的ip地址与服务器不一致。...
  6. 第五周项目3-用多文件组织多个类的程序
  7. php遍历memcache,php遍历memcache所有键值
  8. 解决spring mybatis 整合后mapper接口注入失败
  9. LoadRunner 录制常见错误解决方法
  10. SQLyog安装成功步骤(附带码),2021版最新
  11. 我们为什么要学习JAVA编程语言
  12. DAC、ADC、FFT使用总结
  13. 海湾汉字编码表全部_汉字区位码对照查询表-汉字区位码对照表大全下载pdf打印版-西西软件下载...
  14. 树莓派无法打开摄像头模块,无法识别摄像头
  15. 331. 验证二叉树的前序序列化
  16. ftp服务器上传文件太慢,ftp服务器上传文件速度多少
  17. 【无标题】安装 Debian 11 Bullseye – 一步一步的截图
  18. 【vbers】ibv_reg_mr|RDMA
  19. 数据分析入门:15种EXCEL数据分析功能
  20. win10专业版电脑不能局域网访问win10家庭版

热门文章

  1. python做一副54扑克牌发牌技巧_德州扑克讲堂:高级技巧 胜率之摊牌胜率的算法...
  2. python中变量的类型是动态的随时可以变化_python动态类型简介
  3. 选购工业交换机时,工业交换机的IP等级多少比较合适?
  4. 工业级光纤收发器如何正确使用和维护?
  5. 物联网的下一步动作会是什么?
  6. 星之卡比镜之迷宫机器人_机器人工程师入门(0)
  7. mysql5.6 1g内存_1G内存用MySQL5.6还是用MySQL5.5比较好
  8. core identity mysql_Microsoft.AspNetCore.Identity 使用 mysql 报错处理
  9. Java学习、简单代码编译
  10. 计算机上没有启动程序怎么办,Win7开机不加载启动项怎么办