pytorch - 了解张量分配
问题描述
假设我为一批 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] 的变化没有反映出来?
谢谢!
解决方案
推荐阅读
- python - 蟒蛇 | 通过自定义异常返回 400
- java - 当我们运行共指解析程序时,它会抛出一个错误,我该如何解决?
- kubernetes - kubectl exec -it - 杀死进程
- json - 基于mat-tree复选框选择,angular6中的过滤表
- c# - 如何从模态调用子表单控制父表单
- javascript - 使用 ACF 字段选择在后端更新另一个 ACF 字段
- perl - 输出文件为空
- android - 在本机代码中捕获信号 (SIGSEGV) 后从 JNI 回调到 Java Android 应用程序代码
- javascript - 如何使用表格中的单选按钮更改背景颜色。每个单选按钮有 4 种颜色(白色、红色、黄色、绿色)
- php - PHP 启动:无法加载动态库 'php_pthreads.dll'