解决pytorch 保存模型遇到的问题


Posted in Python onMarch 03, 2021

今天用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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。如有错误或未考虑完全的地方,望不吝赐教。

Python 相关文章推荐
让python的Cookie.py模块支持冒号做key的方法
Dec 28 Python
Python多线程下载文件的方法
Jul 10 Python
Python在Console下显示文本进度条的方法
Feb 14 Python
使用pandas对两个dataframe进行join的实例
Jun 08 Python
python将txt文件读入为np.array的方法
Oct 30 Python
python实现多层感知器
Jan 18 Python
pybind11和numpy进行交互的方法
Jul 04 Python
简单了解python gevent 协程使用及作用
Jul 22 Python
Pandas-Cookbook 时间戳处理方式
Dec 07 Python
python palywright库基本使用
Jan 21 Python
python如何修改文件时间属性
Feb 05 Python
OpenCV-Python使用cv2实现傅里叶变换
Jun 09 Python
解决pytorch 模型复制的一些问题
Mar 03 #Python
Pytorch模型迁移和迁移学习,导入部分模型参数的操作
Mar 03 #Python
pytorch 实现L2和L1正则化regularization的操作
Mar 03 #Python
Pytorch自定义Dataset和DataLoader去除不存在和空数据的操作
Mar 03 #Python
python爬取youtube视频的示例代码
Mar 03 #Python
pytorch Dataset,DataLoader产生自定义的训练数据案例
Mar 03 #Python
解决pytorch 数据类型报错的问题
Mar 03 #Python
You might like
DOTA2 玩家自创拉野攻略 特色英雄快速成长篇
2020/04/20 DOTA
PHP程序级守护进程的实现与优化的使用概述
2013/05/02 PHP
ThinkPHP中自定义错误页面和提示页面实例
2014/11/22 PHP
php语言中使用json的技巧及json的实现代码详解
2015/10/27 PHP
php版微信公众账号第三方管理工具开发简明教程
2016/09/23 PHP
php文件上传 你真的掌握了吗
2016/11/28 PHP
PHP实现电商订单自动确认收货redis队列
2017/05/17 PHP
PHP函数按引用传递参数及函数可选参数用法示例
2018/06/04 PHP
PHP基于openssl实现的非对称加密操作示例
2019/01/11 PHP
Prototype Number对象 学习
2009/07/19 Javascript
javascript的onchange事件与jQuery的change()方法比较
2009/09/28 Javascript
jQuery Ajax使用 全解析
2010/12/15 Javascript
web基于浏览器的本地存储方法应用
2012/11/27 Javascript
JS短路原理的应用示例 精简代码的途径
2013/12/13 Javascript
纯javascript实现自动发送邮件
2015/10/21 Javascript
Vue.js 和 MVVM 的注意事项
2016/11/07 Javascript
浅述节点的创建及常见功能的实现
2016/12/15 Javascript
详解用vue-cli来搭建vue项目和webpack
2017/04/20 Javascript
基于 Vue 的树形选择组件的示例代码
2017/08/18 Javascript
JavaScript实现焦点进入文本框内关闭输入法的核心代码
2017/09/20 Javascript
使用puppeteer破解极验的滑动验证码
2018/02/24 Javascript
node实现的爬虫功能示例
2018/05/04 Javascript
vue v-model动态生成详解
2018/06/30 Javascript
微信小程序实现联动选择器
2019/02/15 Javascript
基于Vue中的父子传值问题解决
2020/07/27 Javascript
如何利用vue实现波谱拟合详解
2020/11/05 Javascript
python刷投票的脚本实现代码
2014/11/08 Python
python 回调函数和回调方法的实现分析
2016/03/23 Python
Django开发中复选框用法示例
2018/03/20 Python
Flask-WTF表单的使用方法
2019/07/12 Python
解决Jupyter因卸载重装导致的问题修复
2020/04/10 Python
应聘自荐书
2013/10/08 职场文书
公积金转移接收函
2014/01/11 职场文书
2014三八妇女节活动总结
2014/03/01 职场文书
入党转正申请书范文
2019/05/20 职场文书
Android Studio 计算器开发
2022/05/20 Java/Android