[TX2] Tensorflow 1.12.0 在 Jetson TX2 上的编译

系统环境
Ubuntu 16.04
Jetpack 3.2.1 on TX2 [Link](with CUDA 9.0 cuDNN 7.0.5)

1、编译准备
1)配置环境

2)安装依赖
Java

Bazel (Tensorflow 使用 Bazel 0.15 编译,因此这里下载 0.15.2 版本,详情参见这里)

2、编译 Tensorflow
1)下载源码
运行如下命令下载 tensorflow 1.12.0 版本源码:

2)修改源码
为了在 TX2 上编译通过,需要 apply this patch
具体说明如下:

2.1)打开文件:tensorflow-1.12.0/tensorflow/contrib/lite/kernels/internal/BUILD
查找:

修改成:

2.2)打开文件:tensorflow-1.12.0/third_party/aws.BUILD
查找:

修改成:

3)编译配置

其中会提示若干选项,请参考如下进行选择:

3)编译
由于 TX2 上面内存只有 8G,因此编译 C Lib 时需要限制内存使用不超过8G,如果直接按照官方的方式是会报错的,当然你也可以设置 swap 来解决。我这里直接设置为4G,你可以根据需要进行调整,但是最好不要超过8G:

这一过程大约需要5、6个小时,如果最后提示编译成功,则会在如下目录生成 libtensorflow.tar.gz 文件
bazel-bin/tensorflow/tools/lib_package/libtensorflow.tar.gz

至此就完成了 TX2 上 Tensorflow 版本的编译。

下面是包含 TX2 在内的几个常用 Tensorflow C Lib 地址,不想编译的直接下载我这里的网盘文件即可:

TensorFlow C libraryCUDAcuDNNURL
Linux x86_64 CPUxxhttps://pan.baidu.com/s/1FDdXCgtJJlDJP8ziDs6dow
Linux x86_64 GPU9.07.xhttps://pan.baidu.com/s/1qxDntkQ-rcgvp1xxrSKW0w
macOS CPUxxhttps://pan.baidu.com/s/1F6NdNtCxg11P_EpEdsqttA
Linux aarch64 GPU (TX2)9.07.0.5https://pan.baidu.com/s/1mI76203wY9Nd5US4sH5-pg

参考文献
[1] https://github.com/tensorflow/tensorflow/blob/master/tensorflow/tools/lib_package/README.md
[2] https://jkjung-avt.github.io/build-tensorflow-1.8.0/
[3] https://github.com/peterlee0127/tensorflow-nvJetson

Add a Comment

您的邮箱地址不会被公开。 必填项已用 * 标注