gpt4 book ai didi

c++ - 使用 TensorFlow 时出现 "unsupported/Eigen/CXX11/Tensor: No such file or directory"

转载 作者:太空狗 更新时间:2023-10-29 21:12:38 63 4
gpt4 key购买 nike

我正在尝试在我的 C++ 应用程序中使用 tensorflow 作为外部库(主要遵循 this tutorial )。到目前为止我做了什么:

  1. 我已经克隆了 tensorflow 存储库(假设存储库根目录是 $TENSORFLOW)
  2. 运行 /.configure(所有设置都是默认设置,因此没有 CUDA、没有 OpenCL 等)。
  3. 使用 bazel build -c/opt//tensorflow:libtensorflow_cc.so 构建共享库(构建成功完成)
  4. 现在我正在尝试#include "tensorflow/core/public/session.h"。但是在包含它之后(并添加 $TENSORFLOW$TENSORFLOW/bazel-genfiles 以包含路径),我收到错误:

    $TENSORFLOW/tensorflow/third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1:42:
    fatal error: unsupported/Eigen/CXX11/Tensor: No such file or directory

有一个github issue为类似问题创建,但在没有提供任何解决方案的情况下标记为已关闭。我还尝试了 master 分支以及 v.1.4.0 版本。

您是否知道,什么会导致这种问题以及如何处理?

最佳答案

我(和许多其他人)为同样的问题苦恼。它可能可以使用 bazel 解决,但我不太了解该工具,现在我使用 make 解决了这个问题。混淆的根源是包含一个名为Tensor的文件,它本身包含一个名为Tensor的文件,这导致一些人错误地认为Tensor包含了它自己。

如果您构建并安装了 python .whl 文件,dist-packages 中将有一个 tensorflow 目录,下面有一个 include 目录,例如在我的系统上:

/usr/local/lib/python2.7/dist-packages/tensorflow/include

来自包含目录

find . -type f -name 'Tensor' -print
./third_party/eigen3/unsupported/Eigen/CXX11/Tensor
./external/eigen_archive/unsupported/Eigen/CXX11/Tensor

第一个有

#include "unsupported/Eigen/CXX11/Tensor"

应该满足这个的文件是第二个。

因此要编译包含 session.h 的 session.cc,以下将起作用

INC_TENS1=/usr/local/lib/python2.7/dist-packages/tensorflow/include/
INC_TENS2=${INC_TENS1}external/eigen_archive/
gcc -c -std=c++11 -I $INC_TENS1 -I $INC_TENS2 session.cc

我看到有人声称您必须从 tensorflow 树构建应用程序并且必须使用 bazel。但是,我相信您需要的所有头文件都在 dist-packages/tensorflow/include 中,至少对于初学者来说,您可以构建 makefile 或 cmake 项目。

关于c++ - 使用 TensorFlow 时出现 "unsupported/Eigen/CXX11/Tensor: No such file or directory",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46731174/

63 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com