codecamp

PyTorch 类型信息

PyTorch 类型信息详解:掌握张量数值属性

一、浮点类型信息:torch.finfo

torch.finfo 是 PyTorch 中用于获取浮点 torch.dtype 数值属性的工具。它可以帮助我们了解不同浮点类型(如 torch.float32torch.float64torch.float16)的详细信息。

(一)主要属性

  1. bits :表示该浮点类型占用的位数。例如,torch.float32bits 为 32。
  2. eps :表示最小可表示的数字,使得 1.0 + eps != 1.0。这是衡量浮点精度的一个重要指标。
  3. max :表示该浮点类型能表示的最大数字。
  4. min :表示该浮点类型能表示的最小数字(通常是 -max)。
  5. tiny :表示该浮点类型能表示的最小正数。

(二)使用示例

import torch


## 获取 torch.float32 的数值属性
float32_info = torch.finfo(torch.float32)
print(f"float32 位数:{float32_info.bits}")
print(f"float32 的 eps:{float32_info.eps}")
print(f"float32 最大值:{float32_info.max}")
print(f"float32 最小值:{float32_info.min}")
print(f"float32 最小正数:{float32_info.tiny}")


## 获取 torch.float64 的数值属性
float64_info = torch.finfo(torch.float64)
print(f"\nfloat64 位数:{float64_info.bits}")
print(f"float64 的 eps:{float64_info.eps}")
print(f"float64 最大值:{float64_info.max}")
print(f"float64 最小值:{float64_info.min}")
print(f"float64 最小正数:{float64_info.tiny}")

二、整数类型信息:torch.iinfo

torch.iinfo 用于获取整数 torch.dtype 的数值属性,适用于 torch.uint8torch.int8torch.int16torch.int32torch.int64 等整数类型。

(一)主要属性

  1. bits :表示该整数类型占用的位数。例如,torch.int32bits 为 32。
  2. max :表示该整数类型能表示的最大数字。
  3. min :表示该整数类型能表示的最小数字。

(二)使用示例

## 获取 torch.int32 的数值属性
int32_info = torch.iinfo(torch.int32)
print(f"\nint32 位数:{int32_info.bits}")
print(f"int32 最大值:{int32_info.max}")
print(f"int32 最小值:{int32_info.min}")


## 获取 torch.uint8 的数值属性
uint8_info = torch.iinfo(torch.uint8)
print(f"\nuint8 位数:{uint8_info.bits}")
print(f"uint8 最大值:{uint8_info.max}")
print(f"uint8 最小值:{uint8_info.min}")

三、总结

通过本教程,我们详细了解了 PyTorch 中的 torch.finfotorch.iinfo 类,它们分别用于获取浮点类型和整数类型的数值属性。这些工具在需要深入了解张量数值范围和精度时非常有用,特别是在进行数值计算和模型优化时。

PyTorch torch.utils.tensorboard
PyTorch 命名张量
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Pytorch 音频

PyTorch 命名为 Tensor(实验性)

PyTorch 强化学习

PyTorch 用其他语言

PyTorch 语言绑定

PyTorch torchvision参考

PyTorch 音频参考

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }