PyTorch C++ 前端向前返回多个张量
PyTorch C++ FrontEnd returning multiple Tensors in forward
我想知道如何在模块类的正向传递中返回std::vector<torch::Tensor>
, 我在文档中读到了FORWARD_HAS_DEFAULT_ARGS宏,但并没有真正 了解如何使用它,以及如何使用它来返回向量作为回报。 提前谢谢你。
FORWARD_HAS_DEFAULT_ARGS
是一个C++宏,根据文档:
此宏启用在其转发中具有默认参数的模块 要在顺序模块中使用的方法。
所以这不是你所追求的。
我假设您返回std::vector
中包含的多个torch::Tensor
值。你可以这样做,但你应该在像这样返回后适当地解压缩它:
# Interprets returned IValue as your desired return type
# You may have to use module.forward(inputs) depending how you loaded model
auto outputs = module->forward(inputs).toTensorVector();
# Print first tensor
std::cout << outputs[0] << std::endl;
如果要从方法返回不同类型的多个值forward
则应只返回包含所需类型的std::tuple
。
在此之后,您可以像这样解压缩它(对于两个torch::Tensor
返回值((来源在这里(:
auto outputs = module->forward(inputs).toTuple();
torch::Tensor out1 = outputs->elements()[0].toTensor();
torch::Tensor out2 = outputs->elements()[1].toTensor();
您还可以连接pytorch
张量(如果这就是您要返回的全部并且它们的形状相同(,并使用view
或类似方法将其解压缩。C++前端与Python的非常相似,如有疑问,请参阅文档。
相关文章:
- 使用Pybind11向Python公开Eigen::张量
- C++中的张量流对象检测
- 在官方张量流 resnet50 模型上运行 tflite 精度工具
- PyTorch C++将数据转换为张量失败
- 如何使用 c++ 更改张量流中的per_process_gpu_memory_fraction?
- 编译 GPU 的张量流示例自定义操作
- 在 Torch C++ API 中,如何快速写入张量的内部数据?
- 如何在C++中将一个特征张量乘以另一个特征张量的标量和?
- C++ ABI 兼容性问题/张量流
- 如何从内存缓冲区加载张量流图
- PyTorch C++ 前端向前返回多个张量
- 从 std::向量值创建张量<Tensor>
- 张量流错误 此文件需要编译器和库支持 ISO C++ 2011 标准
- 如何将自定义特征张量类存储到 std::vector 中?
- CUDA 高效的 nd-array(张量)切片
- 部署在张量流中训练的神经网络来火炬C++的最佳方法是什么?
- 微调张量流对象检测预训练模型
- 犰狳(C++)中的快速阵列置换(广义张量转置)
- 如何获取特征张量的 sqrt() 函数返回的标量值
- 返回 am Eigen::来自函数的张量切片