Can't pickle <class 'torch._C._VariableFunctions'>
在google上查找原因,发现是保存时保存了整个模型的原因,而模型中有一些自定义的参数
将 torch.save(model,save_path) 改为 torch.save(model.state_dict(),save_path)
然后载入模型也做相应的更改就好了
补充:pytorch训练模型的一些坑
opencv的python和c++读取的图像结果不一致,是因为python和c++采用的opencv版本不一样,从而使用的解码库不同,导致读取的结果不同。
PIL和pytorch的图像resize操作,与opencv的resize结果不一样,这样会导致训练采用PIL,预测时采用opencv,结果差别很大,尤其是在检测和分割任务中比较明显。
pytorch的torch.exp与c++的exp计算,10e-6的数值时候会有10e-3的误差,对于高精度计算需要特别注意,比如
两个输入5.601597, 5.601601, 经过exp计算后变成270.85862343143174, 270.85970686809225
以上为个人经验,希望能给大家一个参考,也希望大家多多支持呐喊教程。如有错误或未考虑完全的地方,望不吝赐教。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。