我想使用 pybind11 在 C++ 模块中接收包含 PyTorch Tensor 的字典,并返回经过一些修改的结果字典,其中包含 C++ torch::Tensor 返回。据我所知,似乎没有明确的方法将 PyTorch Tensor 转换为 C++ Tensor,以及将 C++ Tensor 转换为 PyTorch Tensor。在最后一次试验中,我尝试将 PyObject 转换为 torch::Tensor 但似乎效果不佳。 (https://discuss.pytorch.org/t/is-it-possible-to-get-pyobject-from-a-torch-tensor/85980/2 https://discuss.pytorch.org/t/is-it-possible-to-get-pyobject-from-a-torch-tensor/85980/2)我想知道它是否正确以及是否有任何解决方法。我在下面分享我的代码片段。
py::dict quantize(py::dict target) {
...
for (auto item: target) {
py::str key(item.first);
torch::Tensor test = item.second.ptr(); // it fails to compile
}
...
return py::dict("name"_a="test", "tensor"_a=torch::rand({3, 3, 3})); // it fails on runtime
}
PyObject * THPVariable_Wrap(at::Tensor t);
at::Tensor& THPVariable_Unpack(PyObject* obj);
我猜这两个就是你要找的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)