pytorch张量的new_zeros方法先容

打印 上一主题 下一主题

主题 1057|帖子 1057|积分 3175

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在 PyTorch 中,Tensor.new_zeros 是一种用于创建与现有张量外形或装备匹配的新张量的方法。该方法生成一个全为零的张量,且其数据范例、装备等属性与调用它的张量一致,除非另行指定。

new_zeros 方法的语法

  1. Tensor.new_zeros(size, *, dtype=None, device=None, requires_grad=False)
复制代码
参数说明



  • size (tuple)
    指定新张量的外形。例如 (2, 3) 表示创建一个外形为 2x3 的张量。
  • dtype (torch.dtype, 可选)
    指定新张量的数据范例。如果未指定,将与原张量的数据范例一致。
  • device (torch.device, 可选)
    指定新张量所在的装备(如 CPU 或 GPU)。如果未指定,将与原张量所在的装备一致。
  • requires_grad (bool, 可选)
    指定新张量是否需要计算梯度(默以为 False)。

new_zeros 的特性



  • 新张量与原张量具有相同的装备默认数据范例(除非显式更改)。
  • 新张量的内容为全零。

利用示例

1. 创建与现有张量外形匹配的零张量

  1. import torch
  2. x = torch.ones(2, 3, device='cuda')  # 创建一个形状为 (2, 3) 的张量
  3. zeros = x.new_zeros((2, 3))
  4.           # 创建一个全零张量,与 x 具有相同形状和设备
  5. print(zeros)
  6. # 输出(在 GPU 上):
  7. # tensor([[0., 0., 0.],
  8. #         [0., 0., 0.]], device='cuda:0')
复制代码
2. 创建具有不同外形的零张量

  1. x = torch.ones(4, 5)
  2. zeros = x.new_zeros((2, 3))
  3.   # 创建一个形状为 (2, 3) 的零张量
  4. print(zeros)
  5. # 输出:
  6. # tensor([[0., 0., 0.],
  7. #         [0., 0., 0.]])
复制代码
3. 指定命据范例

  1. x = torch.ones(3, 3, dtype=torch.float32)
  2. zeros = x.new_zeros((2, 2), dtype=torch.int32)  # 显式指定数据类型
  3. print(zeros)
  4. # 输出:
  5. # tensor([[0, 0],
  6. #         [0, 0]], dtype=torch.int32)
复制代码
4. 指定装备

  1. x = torch.ones(2, 2, device='cuda')
  2. zeros = x.new_zeros((3, 3), device='cpu')  # 在 CPU 上创建新张量
  3. print(zeros)
  4. # 输出:
  5. # tensor([[0., 0., 0.],
  6. #         [0., 0., 0.],
  7. #         [0., 0., 0.]])
复制代码

与其他创建零张量的方法的对比


  • torch.zeros
  1. zeros = torch.zeros((2, 3))
复制代码




    • 独立于已有张量。
    • 需要显式指定命据范例和装备。

  • Tensor.new_zeros
  1. zeros = x.new_zeros((2, 3))
复制代码



  • 与现有张量 x 共享装备和默认数据范例。

常见应用场景


  • 快速创建与输入张量匹配的零张量 在深度学习中,可能需要创建与现有张量外形和装备匹配的零张量。例如,用于初始化中心结果或辅助计算。
  • 动态操纵 当输入张量的外形、装备不固定时,可以利用 new_zeros 动态生成匹配的零张量,无需手动指定装备或数据范例。

总结

Tensor.new_zeros 是一个高效、方便的方法,恰当在动态模子或装备敏感的代码中利用。它制止了显式管理装备和数据范例的贫苦,有助于提高代码的简便性和可维护性。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王國慶

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表