pytorch 如何使用float64训练


Posted in Python onMay 24, 2021

pytorch默认使用单精度float32训练模型,

原因在于:

使用float16训练模型,模型效果会有损失,而使用double(float64)会有2倍的内存压力,且不会带来太多的精度提升。

本人,最近遇到需要使用double数据类型训练模型的情况,具体实现需要把模型的权重参数数据类型和输入数据类型全部设置为torch.float64即可。

可使用torch的一个函数,轻松地把模型参数转化为float64

torch.set_default_dtype(torch.float64)

输入类型可使用

tensor.type(torch.float64)

补充:float32和float64的本质区别

首先我们需要知道何为bits和bytes?

bits:名为位数bytes:为字节简单的数就是MB和G的关系!

那么8bits=1bytes,下面是各个单位的相互转化!

 

pytorch 如何使用float64训练

那么float32和float64有什么区别呢?

数位的区别一个在内存中占分别32和64个bits,也就是4bytes或8bytes数位越高浮点数的精度越高它会影响深度学习计算效率?

float64占用的内存是float32的两倍,是float16的4倍;

比如对于CIFAR10数据集,如果采用float64来表示,需要60000*32*32*3*8/1024**3=1.4G,光把数据集调入内存就需要1.4G;

如果采用float32,只需要0.7G,如果采用float16,只需要0.35G左右;

占用内存的多少,会对系统运行效率有严重影响;(因此数据集文件都是采用uint8来存在数据,保持文件最小)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python通过pil模块将raw图片转换成png图片的方法
Mar 16 Python
Python中zfill()方法的使用教程
May 20 Python
centos6.4下python3.6.1安装教程
Jul 21 Python
python字典DICT类型合并详解
Aug 17 Python
Python实现JSON反序列化类对象的示例
Jan 31 Python
查看Django和flask版本的方法
May 14 Python
Python流程控制 if else实现解析
Sep 02 Python
python 批量修改 labelImg 生成的xml文件的方法
Sep 09 Python
python关闭占用端口方式
Dec 17 Python
python代码如何注释
Jun 01 Python
BeautifulSoup获取指定class样式的div的实现
Dec 07 Python
next在python中返回迭代器的实例方法
Dec 15 Python
pytorch 使用半精度模型部署的操作
May 24 #Python
解决Pytorch半精度浮点型网络训练的问题
May 24 #Python
Python办公自动化之Excel(中)
May 24 #Python
PyTorch梯度裁剪避免训练loss nan的操作
May 24 #Python
python3读取文件指定行的三种方法
May 24 #Python
pytorch中Schedule与warmup_steps的用法说明
May 24 #Python
Python Pycharm虚拟下百度飞浆PaddleX安装报错问题及处理方法(亲测100%有效)
May 24 #Python
You might like
海河写的 Discuz论坛帖子调用js的php代码
2007/08/23 PHP
生成卡号php代码
2008/04/09 PHP
phpmyadmin安装时提示:Warning: require_once(./libraries/common.inc.php)错误解决办法
2011/08/18 PHP
php设计模式之单例模式使用示例
2014/01/20 PHP
PHP中使用Imagick操作PSD文件实例
2015/01/26 PHP
thinkPHP框架实现的无限回复评论功能示例
2018/06/09 PHP
PDO::rollBack讲解
2019/01/29 PHP
面向对象的编程思想在javascript中的运用上部
2009/11/20 Javascript
js自定义事件及事件交互原理概述(一)
2013/02/01 Javascript
JavaScript中常见获取元素的方法汇总
2015/03/04 Javascript
非常棒的jQuery图片轮播效果
2016/04/17 Javascript
nodejs处理图片的中间件node-images详解
2017/05/08 NodeJs
使用yeoman构建angular应用的方法
2017/08/14 Javascript
vue利用axios来完成数据的交互
2018/03/23 Javascript
JS实现获取毫秒值及转换成年月日时分秒的方法
2018/08/15 Javascript
JavaScript中concat复制数组方法浅析
2019/01/20 Javascript
Vue.js递归组件实现组织架构树和选人功能
2019/07/04 Javascript
微信小程序class封装http代码实例
2019/08/24 Javascript
Vue实现手机计算器
2020/08/17 Javascript
用Eclipse写python程序
2018/02/10 Python
Django框架使用内置方法实现登录功能详解
2019/06/12 Python
Python遍历字典方式就实例详解
2019/12/28 Python
运行tensorflow python程序,限制对GPU和CPU的占用操作
2020/02/06 Python
将 Ubuntu 16 和 18 上的 python 升级到最新 python3.8 的方法教程
2020/03/11 Python
HTML中meta标签及Keywords
2020/04/15 HTML / CSS
自我评价的正确写法
2013/09/19 职场文书
计算机专业毕业生自我鉴定
2014/01/16 职场文书
师德个人剖析材料
2014/02/02 职场文书
校园摄影活动策划方案
2014/02/05 职场文书
服装设计师求职信
2014/06/04 职场文书
收款委托书范本
2014/09/11 职场文书
2014乡镇机关党员个人对照检查材料思想汇报
2014/10/09 职场文书
优秀班主任材料
2014/12/16 职场文书
2016元旦主持人开场白
2015/12/03 职场文书
oracle连接ODBC sqlserver数据源的详细步骤
2021/07/25 Oracle
Python list列表删除元素的4种方法
2021/11/01 Python