使用libtensorflow_cc.so使用Tensorflow C++ API的标头列表

nis*_*iya 6 tensorflow

我想知道为了使用Tensorflow的C++ API需要什么头文件.就像C API一样,只有一个标题c_api.h具有声明的所有函数等,C++ API是否有这样的单个标题?我试着搜索这个,但无法理解什么是必需的,什么不是.

在tensorflow/cc,tensorflow/core和tensorflow/c中有一个巨大的标题列表,用于构建libtensorflow_cc.so,我们也在tensorflow的分布中发送大部分标题(By TF的分布我的意思是使用的TF构建bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package) .为了使用C++ API,标题列表是否足够?或者我们是否需要在tensorflow/BUILD中构建任何其他目标?

我还浏览了https://www.tensorflow.org/api_docs/cc/,但无法确切地列出所需标题的确切列表.

在其中一篇相关文章中,我发现tensorflow/bazel-genfiles包含所需的标题.请确认一下.

提前谢谢,Nishidha

Flo*_*oop 0

据我所知,没有官方可分发的 C++ API 包。然而,tensorflow_cc项目可以为您构建和安装 TF C++ API,以及您可以链接的方便的 CMake 目标。

尽管它可能安装的文件比所需的文件稍多,但您可以在CMakeLists.txt:130中找到已安装标头的列表:

# install *all* files with .h extension
/tensorflow/**/*.h
# install all dependencies downloaded by contrib/makefile
/tensorflow/tensorflow/contrib/makefile/downloads/
# install all files from third_party folder (e.g., Eigen/Tensor)
/tensorflow/third_party/
Run Code Online (Sandbox Code Playgroud)

您可以在CMakeLists.txt:58中找到编译器应包含的目录列表:

/tensorflow
/tensorflow/bazel-genfiles
/tensorflow/tensorflow/contrib/makefile/downloads
/tensorflow/tensorflow/contrib/makefile/downloads/eigen
/tensorflow/tensorflow/contrib/makefile/downloads/gemmlowp
/tensorflow/tensorflow/contrib/makefile/gen/protobuf-host/include
Run Code Online (Sandbox Code Playgroud)

请注意,C++ API 还需要 eigen 和 protobuf 标头和库,对于 tensorflow_cc,它们是使用TF 存储库中的contrib/makefile构建的。

您可能更喜欢直接使用tensorflow_cc,这样您就不必手动处理所有这些事情。