当前位置: 首页 > news >正文

【知识】PyTorch中的数据类型dtype

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn]

如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~

目录

类型概括

代码中查看范围

默认数据类型


        对数据类型有个大致的了解还是很必要的,不然可能会遇到莫名的错误,比如出现负数、报错等,但不知道原因。

类型概括

torch.Tensor — PyTorch 2.4 documentation

数据类型

代码中的dtype表示

数据范围(仅供参考,可能有错,还是得按照后面的代码结果为准)

32 位浮点数

torch.float32 or torch.float

[−3.4e38,3.4e38]

64 位浮点数

torch.float64 or torch.double

[−1.8e308,1.8e308]

16 位浮点数 1

torch.float16 or torch.half

[−6.5e4,6.5e4]

16 位浮点数 2

torch.bfloat16

[−3.4e38,3.4e38]

32 位复数

torch.complex32 or torch.chalf

16 位浮点实部和虚部组成

64 位复数

torch.complex64 or torch.cfloat

32 位浮点实部和虚部组成

128 位复数

torch.complex128 or torch.cdouble

64 位浮点实部和虚部组成

8 位整数(无符号)

torch.uint8

0,255

16 位整数(无符号)4

(受限支持)

torch.uint16

0,65535

32 位整数(无符号)4

(受限支持)  

torch.uint32

0,4294967295

64 位整数(无符号)4

(受限支持)

torch.uint64

0,18446744073709551615

8 位整数(有符号)

torch.int8

−128,127

16 位整数(有符号)

torch.int16 or torch.short

−32768,32767

32 位整数(有符号)

torch.int32 or torch.int

−2147483648,2147483647

64 位整数(有符号)

torch.int64 or torch.long

−9.2e18,9.2e18
布尔值

torch.bool

{False, True}
量化 8 位整数(无符号)

torch.quint8

0,255
量化 8 位整数(有符号)

torch.qint8

−128,127
量化 32 位整数(有符号)

torch.qint32

−2147483648,2147483647

量化 4 位整数(无符号)3

torch.quint4x2

在 1 字节中编码 2 个 4 位值

8 位浮点数, e4m3 5

(受限支持)

torch.float8_e4m3fn 

依赖于具体实现

8 位浮点数t, e5m2 5

(受限支持)

torch.float8_e5m2

依赖于具体实现
  • 1:有时也称为 binary16:使用 1 个符号位、5 个指数位和 10 个符号位。当精度很重要而牺牲范围时很有用。
  • 2:有时也称为Brain Floating Point:使用 1 个符号、8 个指数位和 7 个符号位。由于它的指数位数与 float32 相同,因此在范围很重要的情况下非常有用。
  • 3:量化后的 4 位整数存储为 8 位带符号整数。目前只有 EmbeddingBag 运算符支持。
  • 4(1,2,3):除 uint8 之外的无符号类型目前计划只在急切模式下提供有限的支持(它们的存在主要是为了协助使用 torch.compile);如果您需要急切支持且不需要额外的范围,我们建议您使用它们的有符号变体。更多详情,请参见 https://github.com/pytorch/pytorch/issues/58734。
  • 5(1,2):torch.float8_e4m3fn 和 torch.float8_e5m2 实现了 https://arxiv.org/abs/2209.05433 中的 8 位浮点类型规范。对运算符的支持非常有限。

代码中查看范围

import torchint16_info = torch.iinfo(torch.int16)
print("int16的最小值:", int16_info.min)
print("int16的最大值:", int16_info.max)float16_info = torch.finfo(torch.float16)
print("float16的最小值:", float16_info.min)
print("float16的最大值:", float16_info.max)

默认数据类型

        当创建一个 torch.tensor 而不指定数据类型(dtype)时,默认的数据类型会跟你给的张量来确定。

        这意味着,如果你直接创建一个浮点数张量而不指定 dtype,它会自动成为 float32 类型。

        对于整数类型,如果你创建一个整数张量且不指定 dtype,它会默认为 torch.int64

import torch# 创建一个浮点数张量,默认dtype为 torch.float32
float_tensor = torch.tensor([1.0, 2.0, 3.0])
print(float_tensor.dtype)  # 输出:torch.float32# 创建一个整数张量,默认dtype为 torch.int64
int_tensor = torch.tensor([1, 2, 3])
print(int_tensor.dtype)  # 输出:torch.int64

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • MAVSDK添加自定义消息与函数实现云台(Gimbal)调整功能
  • 【Python爬虫实例爬取网站搞笑段子】
  • 线程池个人笔记总结
  • 编程-设计模式 7:桥接模式
  • pandas赋值不成功
  • 职业教育物联网实验实训室建设应用案例
  • 入营测评题解
  • BeanFactory 和FactoryBean的区别
  • linux常用网络工具汇总二
  • Duilib 二
  • openfeign本地试用
  • 工厂模式 vs 策略模式:Java设计模式详细对比
  • 科学碳目标|科学碳倡议|SBTI认证|科学基础目标倡议
  • JSONB字段搜索走索引
  • 【人工智能】常用的人工智能框架、模型、使用方法、应用场景以及代码实例的概述
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • angular学习第一篇-----环境搭建
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • github指令
  • input的行数自动增减
  • java概述
  • mongodb--安装和初步使用教程
  • rc-form之最单纯情况
  • React的组件模式
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • springboot_database项目介绍
  • spring学习第二天
  • vue自定义指令实现v-tap插件
  • 经典排序算法及其 Java 实现
  • 新手搭建网站的主要流程
  • 《码出高效》学习笔记与书中错误记录
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​【经验分享】微机原理、指令判断、判断指令是否正确判断指令是否正确​
  • # 达梦数据库知识点
  • ## 基础知识
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #Java第九次作业--输入输出流和文件操作
  • #控制台大学课堂点名问题_课堂随机点名
  • $(selector).each()和$.each()的区别
  • (02)Hive SQL编译成MapReduce任务的过程
  • (04)odoo视图操作
  • (2)STM32单片机上位机
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (C语言)字符分类函数
  • (JS基础)String 类型
  • (阿里云在线播放)基于SpringBoot+Vue前后端分离的在线教育平台项目
  • (附源码)php投票系统 毕业设计 121500
  • (一)Neo4j下载安装以及初次使用
  • (转)setTimeout 和 setInterval 的区别
  • (转)Windows2003安全设置/维护
  • (自适应手机端)响应式服装服饰外贸企业网站模板
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • .DFS.
  • .gitignore文件设置了忽略但不生效
  • .L0CK3D来袭:如何保护您的数据免受致命攻击