100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > tensorflow源码编译教程_源码编译安装tensorflow 1.8

tensorflow源码编译教程_源码编译安装tensorflow 1.8

时间:2023-10-20 23:18:08

相关推荐

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,重新安装

卸载参考:/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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。