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中global与nonlocal比较
Nov 21 Python
Python使用metaclass实现Singleton模式的方法
May 05 Python
python 的列表遍历删除实现代码
Apr 12 Python
Django的信号机制详解
May 05 Python
Python排序搜索基本算法之冒泡排序实例分析
Dec 09 Python
Python面向对象之接口、抽象类与多态详解
Aug 27 Python
python3.6使用urllib完成下载的实例
Dec 19 Python
Python 中Django安装和使用教程详解
Jul 03 Python
Python 3.8 新功能大揭秘【新手必学】
Feb 05 Python
Django 解决由save方法引发的错误
May 21 Python
利用Python第三方库实现预测NBA比赛结果
Jun 21 Python
Python批量解压&压缩文件夹的示例代码
Apr 04 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
PHP 和 XML: 使用expat函数(一)
2006/10/09 PHP
第二节--PHP5 的对象模型
2006/11/16 PHP
介绍几个array库的新函数 php
2006/12/29 PHP
PHP文件去掉PHP注释空格的函数分析(PHP代码压缩)
2013/07/02 PHP
PHP中register_shutdown_function函数的基础介绍与用法详解
2017/11/28 PHP
javascript高亮效果的二种实现方法
2008/09/14 Javascript
Jquery 弹出层插件实现代码
2009/10/24 Javascript
从零开始学习jQuery (二) 万能的选择器
2010/10/01 Javascript
jquery中获取select选中值的代码
2011/06/27 Javascript
JS替换文本域内的回车示例
2014/02/18 Javascript
javascript类型转换示例
2014/04/29 Javascript
Javascript 实现图片无缝滚动
2014/12/19 Javascript
jQuery实现提示密码强度的代码
2015/07/15 Javascript
整理AngularJS框架使用过程当中的一些性能优化要点
2016/03/05 Javascript
JS实现队列与堆栈的方法
2016/04/21 Javascript
JS调用打印机功能简单示例
2016/11/28 Javascript
基于JQuery和原生JavaScript实现网页定位导航特效
2017/04/03 jQuery
JS实现简单抖动效果
2017/06/01 Javascript
vue-baidu-map 进入页面自动定位的解决方案(推荐)
2018/04/28 Javascript
vue2.0 实现导航守卫的具体用法(路由守卫)
2018/05/17 Javascript
vue ssr+koa2构建服务端渲染的示例代码
2020/03/23 Javascript
python连接mongodb操作数据示例(mongodb数据库配置类)
2013/12/31 Python
python去除所有html标签的方法
2015/05/05 Python
Python实现二叉堆
2016/02/03 Python
在Pycharm中使用GitHub的方法步骤
2019/06/13 Python
python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例
2020/02/28 Python
python如何解析复杂sql,实现数据库和表的提取的实例剖析
2020/05/15 Python
python怎么对数字进行过滤
2020/07/05 Python
汽车维修工岗位职责
2014/02/12 职场文书
大学生先进事迹材料
2014/02/16 职场文书
传播学专业毕业生自荐书
2014/07/01 职场文书
设计师求职信
2014/07/01 职场文书
大学生就业协议书范本(适用于公司企业)
2014/10/07 职场文书
处级干部考察材料
2014/12/24 职场文书
会议简报格式范文
2015/07/20 职场文书
pytorch通过训练结果的复现设置随机种子
2021/06/01 Python