gpt4 book ai didi

c++ - 在 Ubuntu 17.10 中从 C/C++ 源构建 Tensorflow 1.4.0

转载 作者:行者123 更新时间:2023-11-30 03:27:32 29 4
gpt4 key购买 nike

我正在尝试从 64 位 Ubuntu 17.10 中的 C/C++ 源构建 Tensorflow 1.4.0。我尝试按照 Tensorflow website 中的说明进行操作和 other website for C++使用 Bazel 总结如下:

cd tensorflow
./configure
(select N for all the options)
bazel build --config=opt --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" --local_resources 2048,.5,1.0 //tensorflow:libtensorflow_cc.so //tensorflow:libtensorflow_framework.so //tensorflow/tools/pip_package:build_pip_package
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
sudo -H pip3 install /tmp/tensorflow_pkg/tensorflow-1.4.0rc1-cp36-cp36m-linux_x86_64.whl

当我尝试构建一个简单的测试程序并在 Eclipse 中包含 tensorflow/core/public/session.h 时(包含路径设置为从 git 下载的 tensorflow 根文件夹),它提示几件事:

  1. device_attributes.pb.h 中缺少 Google 的 protobuf common.h(我无法使用 apt-get 安装 protobuf,因为它会提示版本太旧 - 低于 3.0 .0.4 检查 device_attributes.pb.h)。我下载了最新的protobuf并按照说明安装
  2. tensor.h 中缺少 Eigen3 的张量文件,其中 tensor.h 包含 [tensorflow 目录]/third_party/eigen3/unsupported/Eigen/CXX11/Tensor 中的张量文件[tensorflow 目录]/third_party/eigen3/unsupported/Eigen/CXX11/Tensor 包括缺少的[/usr/include/eigen3/]unsupported/Eigen/CXX11/Tensor libeigen3-dev 提供的文件。我 apt-get 安装 libeigen3-dev。
  3. 安装 libeigen3-dev 后,我将 /usr/include/eigen3 添加到 Eclipse 的包含路径,因为 tensorflow 目录中的 Tensor 文件无法在 /usr 中找到 Tensor 文件/include(带有额外的 eigen3 目录)。
  4. mutex.h 中缺少 nsync_cv.h 文件。我将 tensorflow 目录中的 nsync 文件夹添加到包含路径。

综上所述,我在 Eclipse 中的包含路径中添加了以下路径:

  • [tensorflow目录]/
  • [tensorflow 目录]/bazel-genfiles
  • [tensorflow 目录]/bazel-tensorflow/external/nsync/public
  • /usr/include/eigen3

我添加了库路径[tensorflow directory]/bazel-bin/tensorflow,其中包含以下库:

  • tensorflow
  • tensorflow_cc
  • tensorflow_framework

我还在 Eclipse 的项目设置中将 -std=c++11 添加到 GCC C++ 编译器和 GCC C++ 链接器。最后遇到链接器错误:

[tensorflow directory]/tensorflow/core/platform/default/logging.h:187: undefined reference to `tensorflow::internal::CheckOpMessageBuilder::NewString[abi::cxx11]()'

我看到一个thread讨论类似的问题,但我确实设置了 -D_GLIBCXX_USE_CXX11_ABI=0 并且 Ubuntu 17.10 使用的是 gcc5 或更高版本。

请建议如何修复链接器错误。非常感谢!

最佳答案

正式来说,你必须在 tensorflow sourcetree 中创建你的 C++ 项目,编写 BUILD 文件并使用 bazel 编译它。看this .

我写了一篇博文:https://tuanphuc.github.io/standalone-tensorflow-cpp/提供使用配置制作独立 C++ Tensorflow 的详细说明:
- Ubuntu 17.10
- 海湾合作委员会 7.2.0
- tensorflow 1.4.0
- Python 2 或 3
-cmake 3.9.6
- 本征 3.3.4
- Protobuf(主分支)
- Googletest(主分支)
- 巴泽尔
希望对你有帮助

引用资料:

Packaged TensorFlow C++ library for bazel-independent use

graph.pb.h missing

关于c++ - 在 Ubuntu 17.10 中从 C/C++ 源构建 Tensorflow 1.4.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47298481/

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