解决pytorch 保存模型遇到的问题
今天用pytorch保存模型时遇到bug
Can't pickle <class 'torch._C._VariableFunctions'>
在google上查找原因,发现是保存时保存了整个模型的原因,而模型中有一些自定义的参数
将 torch.save(model,save_path) 改为 torch.save(model.state_dict(),save_path)
然后载入模型也做相应的更改就好了
补充:pytorch训练模型的一些坑
1. 图像读取
opencv的python和c++读取的图像结果不一致,是因为python和c++采用的opencv版本不一样,从而使用的解码库不同,导致读取的结果不同。
2. 图像变换
PIL和pytorch的图像resize操作,与opencv的resize结果不一样,这样会导致训练采用PIL,预测时采用opencv,结果差别很大,尤其是在检测和分割任务中比较明显。
3. 数值计算
pytorch的torch.exp与c++的exp计算,10e-6的数值时候会有10e-3的误差,对于高精度计算需要特别注意,比如
两个输入5.601597, 5.601601, 经过exp计算后变成270.85862343143174, 270.85970686809225
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。
相关文章
Appium+python自动化之连接模拟器并启动淘宝APP(超详解)
这篇文章主要介绍了Appium+python自动化之 连接模拟器并启动淘宝APP(超详解)本文以淘宝app为例,通过实例代码给大家介绍的非常详细,需要的朋友可以参考下2019-06-06
Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法
这篇文章主要介绍了Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法,涉及Python中cx_Oracle模块与csv模块操作Oracle数据库及csv文件的相关技巧,需要的朋友可以参考下2015-05-05
matlab和Excel的数据交互操作(非xlsread和xlswrite)
在使用MATLAB时,可能会遇到很多表格数据的处理,有时MATLAB也需要利用现存的表格数据实现操作目的,下面这篇文章主要给大家介绍了关于matlab和Excel的交互操作的相关资料,非xlsread和xlswrite,需要的朋友可以参考下2021-08-08


最新评论