使用预编译的张量流与cmake

Ame*_*mer 10 c++ linker clion tensorflow

我在CLion中设置了一个使用CMake的c ++项目.我正在使用各种第三方库,并希望集成Tensorflow.

我试过巴泽勒编译Tensorflow到共享库中libtensorflow.so哪一种工作但仍然有相当多的依赖关系(例如,以当前的protobuf版本,一旦我这样做,有更多),我不得不修正.

有没有办法使用标准的Tensorflow git存储库,并以某种方式链接为python使用预编译的库?还是有另一种方便的方法吗?

Python中的Tensorflow对我很有用.

小智 6

我知道这个答案很晚,但我遇到了你的确切问题,并且能够解决它.我在这里创建了一个存储库,它描述了如何完成你想要的.要点是:

  • 将构建规则添加到包含所有必需C++元素的TensorFlow存储库.
  • 使用Bazel构建共享库并将所有标头复制到/usr/local.
  • 安装Protobuf和Eigen的特定版本(这是通过脚本自动完成的)或将它们添加为外部依赖项.
  • 使用给定文件配置CMake项目.

如果您有任何疑问或问题,请随时与我联系.


Roy*_*rot 5

如果您使用的是 MacOS,使用自制软件、CMakepkg_config就很简单。

首先使用brew获取Tensorflow:

brew install libtensorflow
Run Code Online (Sandbox Code Playgroud)

然后在CMakeLists.txt

cmake_minimum_required(VERSION 3.10)
project(tf-inference)

find_package(PkgConfig)
pkg_check_modules(TensorFlow REQUIRED tensorflow)

link_directories(${TensorFlow_LIBRARY_DIRS})
include_directories(${TensorFlow_INCLUDE_DIRS})
add_compile_definitions(${TensorFlow_CFLAGS_OTHER})

add_executable(tf-inference inference.cpp)
target_link_libraries(tf-inference ${TensorFlow_LIBRARIES})
Run Code Online (Sandbox Code Playgroud)