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 相关文章推荐
Python3实现生成随机密码的方法
Aug 23 Python
python通过pil模块获得图片exif信息的方法
Mar 16 Python
Python字符串处理函数简明总结
Apr 13 Python
python提取图像的名字*.jpg到txt文本的方法
May 10 Python
在Pycharm中修改文件默认打开方式的方法
Jan 17 Python
Pycharm简单使用教程(入门小结)
Jul 04 Python
详解一种用django_cache实现分布式锁的方式
Sep 01 Python
详解Pycharm与anaconda安装配置指南
Aug 25 Python
详解pytorch tensor和ndarray转换相关总结
Sep 03 Python
Python如何获取文件路径/目录
Sep 22 Python
python实现文件分片上传的接口自动化
Nov 19 Python
python集合的新增元素方法整理
Dec 07 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 解决session死锁的方法
2013/06/20 PHP
在PHP模板引擎smarty生成随机数的方法和math函数详解
2014/04/24 PHP
基于CakePHP实现的简单博客系统实例
2015/06/28 PHP
以实例全面讲解PHP中多进程编程的相关函数的使用
2015/08/18 PHP
PHP使用内置函数生成图片的方法详解
2016/05/09 PHP
[原创]php简单防盗链验证实现方法
2016/07/09 PHP
CI框架使用composer安装的依赖包步骤与方法分析
2016/11/21 PHP
php图片合成方法(多张图片合成一张)
2017/11/25 PHP
setAttribute 与 class冲突解决
2008/02/17 Javascript
页面使用密码保护代码
2013/04/10 Javascript
jQuery设置Cookie及删除Cookie实例分析
2016/04/15 Javascript
iscroll碰到Select无法选择下拉刷新的解决办法
2016/05/21 Javascript
JS锚点的设置与使用方法
2016/09/05 Javascript
JS实现图文并茂的tab选项卡效果示例【附demo源码下载】
2016/09/21 Javascript
JS实现根据密码长度显示安全条功能
2017/03/08 Javascript
Require.JS中的几种define定义方式示例
2017/06/01 Javascript
js模块加载方式浅析
2017/08/12 Javascript
Vue上传组件vue Simple Uploader的用法示例
2017/08/25 Javascript
VueJs监听window.resize方法示例
2018/01/17 Javascript
JS常用的几种数组遍历方式以及性能分析对比实例详解
2018/04/11 Javascript
你应该了解的JavaScript Array.map()五种用途小结
2018/11/14 Javascript
vue-cli2与vue-cli3在一台电脑共存的实现方法
2019/09/25 Javascript
Vue实现简单购物车功能
2020/12/13 Vue.js
微信小程序组件生命周期的踩坑记录
2021/03/03 Javascript
编写Python脚本把sqlAlchemy对象转换成dict的教程
2015/05/29 Python
Python爬虫PyQuery库基本用法入门教程
2018/08/04 Python
python3+PyQt5 创建多线程网络应用-TCP客户端和TCP服务器实例
2019/06/17 Python
Django实现CAS+OAuth2的方法示例
2019/10/30 Python
Django 创建后台,配置sqlite3教程
2019/11/18 Python
美国内衣第一品牌:Hanes(恒适)
2016/07/29 全球购物
土耳其时尚潮流在线购物网站:Trendyol
2017/10/10 全球购物
Space NK英国站:英国热门美妆网站
2017/12/11 全球购物
德国传统玻璃制造商:Cristalica
2018/04/23 全球购物
工作疏忽检讨书
2014/01/25 职场文书
党员自我剖析材料
2014/08/31 职场文书
Python NumPy灰度图像的压缩原理讲解
2021/08/04 Python