安装tensorflow:无法统计'/usr/include/cudnn.h'

时间:2017-10-03 12:36:05

标签: linux tensorflow cudnn

我正在尝试在我的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

一样禁用cuda

给出:

~/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

1 个答案:

答案 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,它出现了:

您必须使用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)。