pytorch 如何使用float64训练

作者:gltangwq 时间:2023-08-12 00:19:45 

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

来源:https://blog.csdn.net/gltangwq/article/details/106519174

标签:pytorch,float64,训练
0
投稿

猜你喜欢

  • python根据用户需求输入想爬取的内容及页数爬取图片方法详解

    2022-12-21 16:31:19
  • Mozilla 表达式 __noSuchMethod__

    2024-04-18 09:42:21
  • Python读取和存储yaml文件的方法

    2023-03-26 10:23:44
  • 导入pytorch时libmkl_intel_lp64.so找不到问题解决

    2021-03-21 01:52:23
  • python 读取.csv文件数据到数组(矩阵)的实例讲解

    2023-08-10 12:12:36
  • Python操作json的方法实例分析

    2022-10-13 10:39:09
  • 探索网页设计中的黄金比例

    2008-10-20 12:26:00
  • PyTorch平方根报错的处理方案

    2022-05-12 09:09:19
  • 对pytorch中x = x.view(x.size(0), -1) 的理解说明

    2022-04-14 00:02:53
  • Python爬取几千条相亲文案

    2023-01-19 22:59:56
  • Python插件机制实现详解

    2021-08-28 06:55:30
  • Mysql慢查询优化方法及优化原则

    2024-01-12 17:33:18
  • Python之str操作方法(详解)

    2021-07-21 09:14:16
  • 两行 JavaScript 代码

    2010-08-31 14:57:00
  • Python实现读取SQLServer数据并插入到MongoDB数据库的方法示例

    2022-11-16 04:14:21
  • Elasticsearches打分机制讲解

    2023-05-31 10:41:03
  • Python从数据库读取大量数据批量写入文件的方法

    2024-01-27 14:48:10
  • PyCharm利用pydevd-pycharm实现Python远程调试的详细过程

    2022-01-22 19:54:26
  • Python self参数详细介绍

    2021-03-02 14:22:29
  • Linux CentOS下docker部署Asp.Net Core(.Net6)

    2024-06-05 15:44:00
  • asp之家 网络编程 m.aspxhome.com