将 Tensorflow 张量从 C 移动到 python

Moving a Tensorflow tensor from C to python

我目前正在使用张量流 c api 处理张量。但是我已经创建了它并完成了我想对它做的操作。现在我想把它移到 python 上做进一步的操作。

我正在使用 tensorflow c-api,因为它提供了 python api 中不可用的功能。所以我的目标是在 C 中创建张量,执行我需要的操作然后将其移动到 python。但是我无论如何都找不到这样做。我的方法是只创建一个 python 绑定和 return 张量,但是这将是 c 中的张量,而不是我需要的 python 张量。有谁知道我可以这样做吗?

Tensorflow 的 PyFunc op 具有将 tensor 转换为 PyObject 的代码,可以在 here

中找到

使用它的示例可以是:

#include "tensorflow/python/lib/core/py_func.h"

Status TensorHandler::ExportTensorAsNumpy(const Tensor *inputTensor) {
    PyObject* numpyObject = Py_None;
    tensorflow::ConvertTensorToNdarray(*inputTensor, &numpyObject);

    //process the numpy further its now stored in numpyObject

    //call this when you don't use the numpyObject anymore
    Py_DECREF(numpyObject);
}