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

Linux 安装tensorflow:无法统计'/usr/include/cudnn.h';,linux,tensorflow,Linux,Tensorflow,我正在尝试在Jetson TX2上安装tensorflow,并遵循Jetsonhacks提供的本教程: 尝试执行./settersonflowev.sh时,我得到以下输出: ~/installTensorFlowTX2$ ./setTensorFlowEV.sh mkdir: cannot create directory ‘/usr/lib/aarch64-linux-gnu/include/’: File exists cp: cannot stat '/usr/include/cudnn

我正在尝试在Jetson TX2上安装tensorflow,并遵循Jetsonhacks提供的本教程:

尝试执行./settersonflowev.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
文件settorFlowEV.sh的内容:

我试图在我的系统上找到cudnn.h($locate cudnn.h),但它不在任何地方。我还查看了我需要在共享对象(sudoaptfilesearch libcudart.so.8.0)中安装什么,但也没有返回任何结果

因此,我想知道我可以做什么,以不再有这个错误消息

重要提示:我无法通过物理方式访问电路板进行闪存或类似操作

我试着禁用cuda,就像这样
TF\u cuda\u 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脚本,在my/buildTensorFlow.sh文件中设置类似于so
export TF\u NEED\u 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
其他读者免责声明:我无法测试这一点,我将假设该板先前已使用Nvidia L4T Ubuntu 16.04。如果不是,请停止阅读并祝您好运,但对于嵌入式应用程序,需要使用该闪存板以可靠地运行,并稳定地运行。任何转移注意力的行为都可能导致任何类型的未知行为

OP声明,该板已经被L4T 27.1闪现,英伟达JETPACK 3,您可以从NVIDIA档案下载。要了解您的L4T需要哪个版本的JetPack,请参考

下载JetPack后,我们需要将其解压缩并运行其中一个内部二进制文件来创建存储库json文件

bash ./JetPack-L4T-3.0-linux-x64.run --noexec
cd _installer
./Chooser
Chooser
要求在主机上安装
libpng12
(至少)。如果您签入目录,它已经生成了我们需要检查的
repository.json
。从该文件看来,NVIDIA为TX1和TX提供了相同的软件包”,因此我们需要关注TX1软件包

通过检查json显示:

  • cuda回购协议位于:
  • cudnn
    位于:(但只有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(在本例中为5.1.5)进行更改.

可能
cudnn
必须使用JetPack手动安装。@MatteoRagni的问题是,为了安装JetPack,我需要对机器进行物理访问,以便对其进行闪存(忘记提及它是嵌入式设备!).我没有物理访问权限,所以我的Jetson TX2不需要闪存。JetPack不需要物理访问。你可以通过XForwarding远程运行。或者你可以通过JetPack远程连接到设备。谁需要闪存?@MatteoRagni来源:这是一种使用它的方法,但不是唯一的方法。总之,我找到了解决方案(使用Jetpack),但我需要一些时间来探索它…保持同步。我会尝试一下,一旦它起作用就接受它。我可以问你是怎么发现的吗?你过去已经尝试过了吗?我可以告诉你,这还不足以让它起作用(编译tensorflow在a**
中是一件痛苦的事)。我知道您需要的软件包只能通过jetpack安装,所以我找到了一种方法来检查它的下载位置。我们真的需要做更多的工作来找到编译它的方法。到目前为止,我设法克服了我遇到的两个错误。但是当我执行时。/packageTensorflow(如图所示:)我得到的信息是:不确定哪里出了问题。这似乎是一个开放的问题:看看这里: