如何使用tensorflow 2.0 C API?



我试图在Xcode的c++项目中使用tensorflow。我遵循了"安装TensorFlow for C"教程可以在他们的网页(https://www.tensorflow.org/install/lang_c)找到。

我不得不改变我的Xcode项目的构建设置部分的几个字段,使其工作。

  1. 我添加了"/usr/local/include">
  2. 我添加了"/usr/local/lib"到图书馆搜索路径。
  3. 我添加了"-ltensorflow"到其他链接器标志

这样做之后,程序正确编译并打印:&;Hello from TensorFlow C library version 2.4.0&;因此,根据教程,安装是成功的,我应该能够使用C API。

我不明白的是,我如何才能访问API本身。例如,我如何声明类型为tensorflow::Scope的变量?

根据我在网上找到的其他教程(例如:https://itnext.io/creating-a-tensorflow-dnn-in-c-part-1-54ce69bbd586),我应该包括位于tensorflow/core/framework/...的文件,但我的计算机上没有这样的文件。

Tensorflow说通过单个文件tensorflow/c/c_api.h可以访问整个API。但是我怎样才能让using namespace tensorflow;这样的东西工作呢?

我已经为这个问题挣扎了好几天了,我真的希望有人能帮助我。

您提供的示例(tensorflow::Scope)可以与c++一起使用,而不能与tensorflow C API一起使用。对于这类指令,你需要从源代码构建tensorflow(我发现这个repo非常有用https://github.com/FloopCZ/tensorflow_cc)。

如果你想使用C API,那么你可以调用c_api.h中的所有函数。例如,下面是我的c++文件(hello_tf_cpp.cpp):

#include <iostream>
#include <tensorflow/c/c_api.h>
int main() {
std::cout << "Hello from Tensorflow C++ library version " << TF_Version() << std::endl;
//printf("Hello from TensorFlow C library version %sn", TF_Version());
TF_Graph* Graph = TF_NewGraph();
TF_Status* Status = TF_NewStatus();
TF_SessionOptions* SessionOpts = TF_NewSessionOptions();
TF_Buffer* RunOpts = NULL;
return 0;
}

我是这样编译和运行它的:

$ g++ -I/usr/local/include -L /usr/local/lib hello_tf_cpp.cpp -l tensorflow -o hello_tf_cpp
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
$./hello_tf_cpp
$ unset LD_LIBRARY_PATH

这是我得到的输出:来自Tensorflow c++库版本1.15.0的Hello

相关内容

  • 没有找到相关文章

最新更新