使用预编译的张量流与cmake

时间:2016-06-28 12:58:05

标签: c++ linker tensorflow clion

我在 CION 中设置了一个使用 CMake 的c ++项目。我正在使用各种第三方库,并希望整合 Tensorflow

我已经尝试 bazel Tensorflow 编译到共享库libtensorflow.so哪种工作但是仍有相当多的依赖项(例如对于当前的protobuf版本,一旦我这样做,还有更多我必须解决的问题。

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

Python中的Tensorflow对我很有用。

2 个答案:

答案 0 :(得分:6)

我知道这个答案已经很晚了,但我遇到了你的确切问题,并且能够解决它。我创建了一个存储库here,它描述了如何完全按照自己的意愿完成任务。要点是:

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

如果您有任何疑问或问题,请不要犹豫与我联系。

答案 1 :(得分:0)

如果您使用的是MacOS,则使用自制软件,CMake和pkg_config很简单。

首先使用brew获取Tensorflow:

brew install libtensorflow

然后在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})