这里记录下TX2的一些操作总结(不定期补充),涉及到一些注意事项,及其一些工具包的安装
1 刷机部分
1.1刷机到本机系统
关于TX2的刷机部分,其他博客都已经介绍了许多了。这里主要注意几点,强烈建议TX2用有线网连接,免得Wifi突然断掉。
1.2 刷机到SDCard
目前无法刷成功,按照教程都无法实现,等下一批TX2到了再调试
2 安装TensorFlow
TensorFlow的安装主要参考JetsonTX2上安装tensorflow的心酸史,这里对其进行总结,并使用更加透明的方式进行安装
2.1 分区
分区是几乎所有教程都说的一个问题,我这里也不尝试不分区会怎样了,TX2供8G内存,但是考虑到TX2机身仅带30G存储,所以我开辟了4G的虚拟空间,按照下面的代码执行安装。
注:分区部分仅针对内存较少的设备,如果自身机身内存超过12G,可以直接跳过此步骤,例如深度服务器内存32G,没必要创建虚拟内存
fallocate -l 4G swapfile # 创建8G大小的swapfile
chmod 600 swapfile # 更改swapfile的权限
mkswap swapfile # 创建swap区
sudo swapon swapfile # 激活swap区
swapon -s # 确认swap区在用
出现下述样例即创建成功
2.2 安装依赖
依赖项的安装许多教程使用的是脚本安装,为了方便安装透明,我这里将其提取出来,一步步进行安装。这里只针对python2进行安装。
注:这部分安装无论什么设备都建议使用apt-get安装,方便快捷,空间占用大约200M,对整体系统空间的占用不大
- Java依赖安装
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
- 基本库依赖安装
sudo apt-get install zip unzip autoconf automake libtool curl zlib1g-dev maven
- Python 2系列依安装
sudo apt-get install python-numpy swig python-dev python-pip python-wheel
- Bazel的安装
Bazel的安装时不要尝试自己编译源码进行安装(感兴趣理解其原理除外),因为编译时候需要许多附加库,这里只是调用,所以按照如下的方式进行下载安装。或者使用迅雷下载(因为总下不下来)
注:这里一定要确定bazel的版本,版本过高会影响TensorFlow的编译,截止2019-1-22日,针对TX2,使用TensorFlow 1.9.0 版本,对应bazel为0.10.0,以后在安装时候可以作为参考
wget --no-check-certificate https://github.com/bazelbuild/bazel/releases/download/0.10.0/bazel-0.10.0-dist.zip
unzip bazel-0.10.0-dist.zip -d bazel-0.10.0-dist
cd bazel-0.10.0-dist/
./compile.sh
编译之后,在output文件夹里面生成出bazel,112M,因为TX2空间有限,而且这个是个编译工具,我将其放在外置SDCard中,并在系统中添加放置的环境变量,在PATH中添加这个bin路径,在我系统中,放置一些无关的bin文件时都是放在 export PATH="/media/nvidia/SDCard/prefix/bin":$PATH
cp output/bazel ../../prefix/bin/
如果系统空间足够大,直接放在系统里面就行。
sudo cp output/bazel /usr/local/bin
至此,所有依赖项安装完成
2.3 安装tensorflow
从github上下载TensorFlow 1.9.0版本的代码。之后,考虑TX2的平台问题,我们需要对源码进行修改。(注:TensorFlow版本与CUDN和cuDNN版本有关,后续我会对其进行细致分析)
- 修改tensorflow/core/kernels/cwise_op_gpu_select.cu.cc文件,按照如下图片示例修改即可
修改之后调用进行环境配置,在配置路径时候,一定要确定在路径下有相关文件(cudnn默认就不是在cuda下),别配置错了,导致编译失败
./configure # 根据需求进行配置,一些参数选择不确定直接参考其他博客,介绍的非常清楚
#配置之后,进行编译,此步骤编译出的是Python的TensorFlow安装包
bazel build -c opt --local_resources 3072,4.0,1.0 --verbose_failures --config=cuda //tensorflow/tools/pip_package:build_pip_package