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时间戳与时间字符串互相转换实例代码
Nov 28 Python
pycharm 使用心得(三)Hello world!
Jun 05 Python
在Django的模型中添加自定义方法的示例
Jul 21 Python
Python2.x版本中基本的中文编码问题解决
Oct 12 Python
使用Python进行二进制文件读写的简单方法(推荐)
Sep 12 Python
Python 加密的实例详解
Oct 09 Python
python单例模式的多种实现方法
Jul 26 Python
Django中modelform组件实例用法总结
Feb 10 Python
python实现微信打飞机游戏
Mar 24 Python
python学习笔记之多进程
Aug 06 Python
python如何绘制疫情图
Sep 16 Python
python 递归相关知识总结
Mar 03 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
ThinkPHP表单数据智能写入create方法实例分析
2015/09/27 PHP
CI框架整合widget(页面格局)的方法
2016/05/17 PHP
Ajax+PHP实现的模拟进度条功能示例
2019/02/11 PHP
javascript 学习笔记(六)浏览器类型及版本信息检测代码
2011/04/08 Javascript
javascript错误的认识不用关心内存管理
2012/12/15 Javascript
js/html光标定位的实现代码
2013/09/23 Javascript
原始XMLHttpRequest方法详情回顾
2013/11/28 Javascript
js函数参数设置默认值的一种变通实现方法
2014/05/26 Javascript
Javascript原型链的原理详解
2016/01/05 Javascript
vue2实现移动端上传、预览、压缩图片解决拍照旋转问题
2017/04/13 Javascript
通俗易懂地解释JS中的闭包
2017/10/23 Javascript
浅谈vue-router 路由传参的方法
2017/12/27 Javascript
JS实现遍历不规则多维数组的方法
2018/03/21 Javascript
Vue数据监听方法watch的使用
2018/03/28 Javascript
node.js中ws模块创建服务端和客户端,网页WebSocket客户端
2019/03/06 Javascript
scrapyd schedule.json setting 传入多个值问题
2019/08/07 Javascript
Python中用Decorator来简化元编程的教程
2015/04/13 Python
Python cookbook(数据结构与算法)将序列分解为单独变量的方法
2018/02/13 Python
django缓存配置的几种方法详解
2018/07/16 Python
详解Python对JSON中的特殊类型进行Encoder
2019/07/15 Python
python删除文件夹下相同文件和无法打开的图片
2019/07/16 Python
Python函数默认参数常见问题及解决方案
2020/03/26 Python
Python 字典中的所有方法及用法
2020/06/10 Python
太阳镜仓库,售价20美元或更少:Sunglass Warehouse
2016/09/28 全球购物
Street One瑞士:德国现代时装公司
2019/10/09 全球购物
static函数与普通函数有什么区别
2015/12/25 面试题
Oracle的内存结构(Memory structures)
2015/06/10 面试题
小学生防溺水广播稿
2014/01/12 职场文书
擅自离岗检讨书
2014/02/11 职场文书
毕业晚会主持词
2014/03/24 职场文书
企业员工薪酬方案
2014/06/04 职场文书
大专学生求职自荐信
2014/07/06 职场文书
帮一个朋友写的求职信
2014/08/09 职场文书
慰问信模板
2015/02/14 职场文书
mysql timestamp比较查询遇到的坑及解决
2021/11/27 MySQL
centos环境下nginx高可用集群的搭建指南
2022/07/23 Servers