使用vs2019编译 c++ libtorch 的 yolov5项目出现的问题,尤其是 Microsoft C++ 异常: c10::Error,位于内存位置 0x0000000D606FE350

 

cv::cvtColor(img, img, cv::COLOR_BGR2RGB);  // BGR -> RGB
img.convertTo(img, CV_32FC3, 1.0f / 255.0f);  // normalization 1/255
auto imgTensor = torch::from_blob(img.data, { 1, img.rows, img.cols, img.channels()}).to(device_type);
imgTensor = imgTensor.permute({ 0, 3, 1, 2 }).contiguous();  // BHWC -> BCHW (Batch, Channel, Height, Width)
std::vector<torch::jit::IValue> inputs;
inputs.emplace_back(imgTensor);
// preds: [?, 15120, 9]
torch::jit::IValue output = module.forward(inputs);
 
// 我的死在下面这行了,报错为:0x00007FFF95D9A388 处(位于 libtorch.exe 中)有未经处理的异常: 
// Microsoft C++ 异常: c10::Error,位于内存位置 0x0000000D606FE350 处。
auto preds = output.toTuple()->elements()[0].toTensor();

 

inline c10::intrusive_ptr<ivalue::Tuple> IValue::toTuple() const & {
  AT_ASSERT(isTuple(), "Expected Tuple but got ", tagKind());
  return toIntrusivePtr<ivalue::Tuple>();
}

 

 

这里先说说我是怎么导出.pt模型的,yolov5官方提供了导出的python的代码,在如下:

 

问题就出现这个转换的代码里,作者说,这个转换默认是调用cpu 的,所以如何使用GPU需要重新修改一下:

你需要修改几句:

github作者的回复:https://github.com/yasenh/libtorch-yolov5#torchscript-model-export

 

 

 
评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值