【发布时间】:2017-03-27 14:04:59
【问题描述】:
我有一个 C++ tensorflow::Tensor,我试图在 Python 中访问其内容。
我查看了Tensorflow C++ Documentation 以寻找可以将tensorflow::Tensor 转换为任何合理的PyObject 的函数(现在不管这是tf.Tensor 还是numpy.nd_array)。
翻遍Tensorflow Code后,我发现了以下线索:
tensorflow/python/client/tf_session_helper.cc 中定义了一个方法TF_Tensor_to_PyObject(TF_Tensor* Tensor, PyObject** out_array)。然而,这是在一个隐藏的 Bazel 包中定义的,而且在一个匿名的 C++ 命名空间中。修改 Tensorflow 本身似乎不直观(我必须修改 Bazel BUILD 文件、.h 和 .cc 文件),并编译我自己的 Tensorflow 以使用这种方法。
这种方法的另一个问题是TF_Tensor != tensorflow::Tensor。 TF_Tensor 是在 Tensorflow 的 C-Api 中定义的,并且在那里,转换也不打算供公众使用(如:在此包之外)。
有人知道更好的方法吗? tensorflow::Tensor 到 PyObject 是否存在我在搜索时没有找到的现有实现?
【问题讨论】:
标签: python c++ c tensorflow python-c-api