标签:OpenCV 模型 torch 保存 Unsupported Lua 格式 type 加载
OpenCV加载Pytorch模型出现Unsupported Lua type 解决方法
原因
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
方法加载!
标签:OpenCV,模型,torch,保存,Unsupported,Lua,格式,type,加载 来源: https://www.cnblogs.com/DragonStart/p/12851987.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。