如何解决从Pytorch C ++中的c10 :: Dict <c10 :: IValue,c10 :: IValue>获取值
我正在Pytorch C ++前端上使用TorchScript模型。
Python中的模型返回output
的{{1}}字典。
当我在C ++中使用它时,它返回一个Dict[str,List[torch.Tensor]]
。这个Python代码等效于什么:
c10::Dict<c10::IValue,c10::IValue>
在C ++中从value_a = output['key_a']
value_b = output['key_b']
获得价值吗?
我已经尝试过了,但是没有用。
c10::Dict
错误:
torch::IValue key_a("key_a");
torch::IValue key_b("key_b");
c10::IValue value_a = output[key_a];
c10::IValue value_b = output[key_b];
std::cout << value_a << std::endl;
std::cout << value_b << std::endl;
解决方法
您可以找到c10:Dict
here的头文件。您想要的是at
方法(defined here),所以:
auto value_a = output.at(key_a);
应该做到这一点。
此外,您不必显式创建torch::IValue key_ay("key_a")
,这就足够了:
auto value_a = output.at("key_a");
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。