首页 > 解决方案 > 了解张量分配

问题描述

假设我为一批 3 张图像创建了一个占位符 -

batch = torch.zeros(3, 3, 256, 256, dtype=torch.uint8)

我有我的虚拟形象 -

image = torch.randint(size = (3,256,256), low=0, high=256)

然后我做 -

batch[0] = image

我无法理解以下输出 -

1)

  id(batch[0]) == id(image)
  out: False

这不应该是真的,因为两者都持有对同一个张量对象“图像”的引用吗?

2)

  id(batch.storage()) == id(image.storage())
  out: True

  batch[0][0][0][0] = 5
  print(image[0][0][0])
  out: 171

由于 'batch' 和 'image' 共享相同的底层存储,为什么在我打印 'image' 的相应元素时,batch[0][0][0][0] 的变化没有反映出来?

谢谢!

标签: pytorchvariable-assignmenttensor

解决方案


推荐阅读