tensorflow源码编译教程_源码编译安装tensorflow 1.8
参考官方指南
基本要求
官网测试过的源代码配置如下:
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相关推荐
- python3 chm文档下载_python3.7.0官方参考文档 最新api文档 chm_Python教程_源雷技术空间...
资源名称:python3.7.0官方参考文档 最新api文档 chm 1.新语法特性: PEP 563, 推迟评估类型注释 2.向后不兼容语法更改: async 和 await 现在保留关键字 3.新 ...
- 深度实践嵌入式linux系,深度实践嵌入式Linux系统移植 完整pdf_操作系统教程_源雷技术空间...
资源名称:深度实践嵌入式Linux系统移植 完整pdf 第1章嵌入式系统架构与移植环境搭建2 第2章u-boot工程与编译系统14 第3章u-boot启动流程分析41 第4章ARM9/S3C2440 ...
- 绿豆pro前端APP源码v5.1.7编译教程,后端配置全开源安装搭建全图文操作萝卜白菜app通用说明带视频教程_多啦咪
绿豆pro前端APP源码v5.1.7编译教程全图文操作萝卜白菜app通用: 图文一: 打开前端加载项目后,选择图下文件名为app.java文件打开操作修改位置如下: public static Str ...
- python 源码编译教程_python源码编译
尝试通过源码自己编译 Python,使用的系统是 Ubuntu14.04 LTS. 首先去官网下载源码,地址:源码下载.下载完成之后,解压源码: 1tar -zxvf Python-2.7.12.tg ...
- java字节码和机器码_字节码和机器码
字节码 字节码是一种中间码 字节码通常指的是已经经过编译,但与特定机器码无关,需要直译器转译后才能成为机器码的中间代码.字节码通常不像源码一样可以让人阅读,而是编码后的数值常量.引用.指令等构成的序列 ...
- 王者荣耀扫码登录教程,扫码登录王者荣耀怎么弄?
王者荣耀扫码登录教程,对于经常玩王者荣耀的人来说,扫码登录王者荣耀是一种非常简单便捷的上号方式,这种方式无需卸载微信,可以直接扫码登录王者荣耀账号的上号神器! 1.什么是扫码登录? 答:扫码登录,就是 ...
- 4位格雷码的顺序编码_格雷码编码规则_格雷码有什么规律
格雷码 典型的二进制格雷码简称格雷码,因1953年公开的弗兰克·格雷专利"Pulse Code Communication"而得名,当初是为了通信,现在则常用于模拟-数字转换和位置 ...
- java编译环境_搭建java编译环境
搭建java编译环境 一.java编译环境 1.准备工作: 下载 jdk-7u79-linux-x64.tar.gz 压缩包 解压 tar zxf jdk-7u79-linux-x64.tar.gz ...
- 安卓模拟器安装教程_安卓 苹果 补丁安装教程 图文加视频教程
免费补丁安装教程 安卓安装教程 安卓系统使用时主题: 主题:dt520_ mobile _all.cpk 封面:dt700_mobile_android.cpk 故安卓用户在解压完成直接将补丁包中的p ...
最新文章
- 上海市金山区财政局容灾项目竞争性谈判600万元
- OMG,隔壁老王竟然是个GEEK !
- java中方法的命名_Java方法中的参数太多,第5部分:方法命名
- SQL Server安装问题程序被挂起的错误解决办法
- 系统地址和服务器地址不一致,在打开远程通服务配置程序时检测系统配置时提示配置失败,映射的ip地址与服务器不一致。...
- 第五周项目3-用多文件组织多个类的程序
- php遍历memcache,php遍历memcache所有键值
- 解决spring mybatis 整合后mapper接口注入失败
- LoadRunner 录制常见错误解决方法
- SQLyog安装成功步骤(附带码),2021版最新
- 我们为什么要学习JAVA编程语言
- DAC、ADC、FFT使用总结
- 海湾汉字编码表全部_汉字区位码对照查询表-汉字区位码对照表大全下载pdf打印版-西西软件下载...
- 树莓派无法打开摄像头模块,无法识别摄像头
- 331. 验证二叉树的前序序列化
- ftp服务器上传文件太慢,ftp服务器上传文件速度多少
- 【无标题】安装 Debian 11 Bullseye – 一步一步的截图
- 【vbers】ibv_reg_mr|RDMA
- 数据分析入门:15种EXCEL数据分析功能
- win10专业版电脑不能局域网访问win10家庭版
热门文章
- python做一副54扑克牌发牌技巧_德州扑克讲堂:高级技巧 胜率之摊牌胜率的算法...
- python中变量的类型是动态的随时可以变化_python动态类型简介
- 选购工业交换机时,工业交换机的IP等级多少比较合适?
- 工业级光纤收发器如何正确使用和维护?
- 物联网的下一步动作会是什么?
- 星之卡比镜之迷宫机器人_机器人工程师入门(0)
- mysql5.6 1g内存_1G内存用MySQL5.6还是用MySQL5.5比较好
- core identity mysql_Microsoft.AspNetCore.Identity 使用 mysql 报错处理
- Java学习、简单代码编译
- 计算机上没有启动程序怎么办,Win7开机不加载启动项怎么办