新闻动态

pytorch 如何使用float64训练

发布日期:2022-04-13 15:35 | 文章来源:脚本之家

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,下面是各个单位的相互转化!

那么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来存在数据,保持文件最小)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。

美国服务器租用

版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。

相关文章

实时开通

自选配置、实时开通

免备案

全球线路精选!

全天候客户服务

7x24全年不间断在线

专属顾问服务

1对1客户咨询顾问

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部