• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

OpenCV加载Pytorch模型出现UnsupportedLuatype解决方法

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

原因

Torch有两个版本,一个就叫Torch一个专门给Python用的Pytorch,它们训练完之后保存下来的模型是不一样的.
说到这问题就很清楚了.OpenCV的ReadNetFromTorch支持的是前者...

解决方法

那么有没有解决办法呢,答案是有的.
PyTorch支持把模型保存为ONNX格式.而这个格式在opencv是支持的.
操作如下:

import torch
import torch.onnx
from torch.autograd import Variable

# ~~~~~~~~~~~~~~~~初始化与训练模型过程~~~~~~~~~~~~~

# 这是普通的pytorch模型保存方式:
torch.save(net.state_dict(), "torch.pt")

# 这是保存为ONNX的方法:
# 由于PyTorch的模型,是动态调整大小的,这里需要初始化一个指定格式的数据,用来调整模型大小
# 就是和你训练模型的时候用的数据一样的格式就行
dummy_input = Variable(torch.randn(1, 1, 28, 28)).to(device)
# 保存模型
torch.onnx.export(net, dummy_input, "torch.onnx")

注意,这里还有个坑!

虽然模型保存成了ONNX格式,但是OpenCV的ReadTensorFromONNX并不能加载! 需要用ReadNet方法加载!


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
lua字符串分割发布时间:2022-07-22
下一篇:
Lua循环结构while循环、repeat循环、for循环_学习笔记03发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap