代码之家  ›  专栏  ›  技术社区  ›  Anonymous

如何为零维火炬张量赋值?

  •  2
  • Anonymous  · 技术社区  · 1 年前
    z = torch.tensor(1, dtype= torch.int64)
    z[:] = 5
    
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    IndexError: slice() cannot be applied to a 0-dim tensor.
    

    我试图给torch张量赋值,但因为它的维数为零,所以切片算子不起作用。那么我该如何赋值呢?

    1 回复  |  直到 1 年前
        1
  •  1
  •   heemayl    1 年前

    你可以做一个 在正确的位置 运算,例如乘法:

    z *= 5
    

    您也可以直接将值分配给基础 data 张量的性质:

    z.data = torch.tensor(5)
    

    注意, autograd (Pytorch的反向传播引擎)不会跟踪直接在张量上进行的任何计算 数据 属性