我正在尝试在我的Jetson TX2上安装tensorflow,并因此遵循Jetsonhacks的本教程:https://www.youtube.com/watch?v=V51IO7kNXCg
尝试执行./setTensorflowEV.sh时,我得到以下输出:
~/installTensorFlowTX2$ ./setTensorFlowEV.sh
mkdir: cannot create directory ‘/usr/lib/aarch64-linux-gnu/include/’: File exists
cp: cannot stat '/usr/include/cudnn.h': No such file or directory
You have bazel 0.5.2- installed.
Found possible Python library paths:
/usr/local/lib/python2.7/dist-packages
/usr/lib/python2.7/dist-packages
Please input the desired Python library path to use. Default is [/usr/local/lib/python2.7/dist- packages]
Using python library path: /usr/local/lib/python2.7/dist-packages
Invalid path to CUDA 8.0 toolkit. /usr/local/cuda/lib64/libcudart.so.8.0 cannot be found
文件setTensorflowEV.sh的内容:https://github.com/jetsonhacks/installTensorFlowTX2/blob/master/setTensorFlowEV.sh
我试图在我的系统上找到cudnn.h($ locate cudnn.h),但它不在任何地方。我还查看了我需要在共享对象中安装的内容(sudo apt-file search libcudart.so.8.0),但这两者都没有返回。
所以我想知道我能做些什么来不再有这个错误信息。
重要说明:我没有物理访问电路板来闪存或类似的东西
我尝试像TF_CUDA_NEED=0
给出:
~/installTensorFlowTX2$ ./setTensorFlowEV.sh
mkdir: cannot create directory ‘/usr/lib/aarch64-linux-gnu/include/’: File exists
cp: cannot stat '/usr/include/cudnn.h': No such file or directory
You have bazel 0.5.2- installed.
Found possible Python library paths:
/usr/local/lib/python2.7/dist-packages
/usr/lib/python2.7/dist-packages
Please input the desired Python library path to use. Default is [/usr/local/lib/python2.7/dist-packages]
Using python library path: /usr/local/lib/python2.7/dist-packages
Configuration finished
但在尝试构建Tensorflow时,我得到了:
~/installTensorFlowTX2$ ./buildTensorFlow.sh
ERROR: /home/nvidia/.cache/bazel/_bazel_nvidia/d2751a49dacf4cb14a513ec663770624/external/local_config_cuda/crosstool/BUILD:4:1: Traceback (most recent call last):
File "/home/nvidia/.cache/bazel/_bazel_nvidia/d2751a49dacf4cb14a513ec663770624/external/local_config_cuda/crosstool/BUILD", line 4
error_gpu_disabled()
File "/home/nvidia/.cache/bazel/_bazel_nvidia/d2751a49dacf4cb14a513ec663770624/external/local_config_cuda/crosstool/error_gpu_disabled.bzl", line 3, in error_gpu_disabled
fail("ERROR: Building with --config=c...")
ERROR: Building with --config=cuda but TensorFlow is not configured to build with GPU support. Please re-run ./configure and enter 'Y' at the prompt to build with GPU support.
ERROR: no such target '@local_config_cuda//crosstool:toolchain': target 'toolchain' not declared in package 'crosstool' defined by /home/nvidia/.cache/bazel/_bazel_nvidia/d2751a49dacf4cb14a513ec663770624/external/local_config_cuda/crosstool/BUILD.
INFO: Elapsed time: 0.403s
我在任何地方都没有./configure脚本,并在我的 ./buildTensorFlow.sh文件中设置export TF_NEED_CUDA=0
行:
#this is my modified buildTensorFlow.sh file
export TF_NEED_CUDA=0
export TF_CUDA_VERSION=8.0
export CUDA_TOOLKIT_PATH=/usr/local/cuda
export TF_CUDNN_VERSION=6.0.21
export CUDNN_INSTALL_PATH=/usr/lib/aarch64-linux-gnu/
export TF_CUDA_COMPUTE_CAPABILITIES=6.2
# Build Tensorflow
cd $HOME/tensorflow
bazel build -c opt --local_resources 3072,4.0,1.0 --verbose_failures --config=cuda //tensorflow/tools/pip_package:build_pip_package
答案 0 :(得分:1)
其他读者的免责声明:我无法对此进行测试,并且我将假设该主板之前已经使用 Nvidia L4T Ubuntu 16.04 进行了测试。如果不是,请停止阅读并祝好运,但是对于嵌入式应用程序,需要使用可靠运行和稳定。任何转移都可能导致任何形式的未知行为。
OP表示该主板已经使用L4T 27.1闪存,指的是Nvidia JetPack 3.0,您可以从Nvidia Archives here下载。要了解L4T所需的JetPack版本,可以参考this page。
下载JetPack后,我们需要解压缩并运行其内部二进制文件以创建存储库json文件。
bash ./JetPack-L4T-3.0-linux-x64.run --noexec
cd _installer
./Chooser
Chooser
要求在您的主机上安装libpng12
(至少)。如果您签入了我们需要检查的repository.json
生成的目录。从该文件中可以看出,NVIDIA正在为TX1和TX"提供相同的软件包,因此我们需要关注TX1软件包。
通过检查json,它出现了:
cuda-repo
位于:cuda-repo-....deb cudnn
位于:cudnnn-....zip(但只有5.1版可用,但不符合您的要求)您必须使用ssh(wget http...
)在您的主板上下载这两个软件包。
您应该安装的第一个是cuda存储库:
sudo dpkg -i cuda-repo*.deb
这将使许多软件包在本地可用,例如您需要安装的libcudart
:
sudo apt update
sudo apt install cuda-toolkit-8.0 # (this may be enough)
还有其他可能需要安装的软件包(使用ls /var/cuda*
列出所有软件包。)
对于cudnn
的安装,您必须将以前的文件解压缩到临时目录中:
unzip cuDNN-....zip
cd cuDNN
要安装三个deb文件
sudo dpkg -i *.deb
应安装正确目录中所需的所有文件。此时,您应该尝试重新启动编译过程。但在此之前,我会使用版本5.1.x更改this line(在本例中为5.1.5)。