【发布时间】:2018-06-22 11:39:39
【问题描述】:
我有一个名为 input 的张量,尺寸为 64x21x21。它是 64 张图像的小批量,每张 21x21 像素。我想将每个图像裁剪为 11x11 像素。所以我想要的输出张量的尺寸为 64x11x11。
我想围绕不同的“中心像素”裁剪每张图片。中心像素由名为center 的二维长张量给出,尺寸为 64x2。对于图像 i,center[i][0] 给出行索引,center[i][1] 给出应该在输出中心的像素的列索引。我们可以假设中心像素始终距离边界至少 5 个像素。
在 pytorch 中(在 gpu 上)有有效的方法吗?
更新:让我澄清一下center 张量是由深度神经网络形成的。它充当“硬注意力机制”,使用强化学习术语。在我“裁剪”图像后,该子图像成为另一个神经网络的输入。这就是我想在 Pytorch 中进行裁剪的原因:因为裁剪前后的操作都在 Pytorch 中。我想避免将任何东西从 GPU 传输回 CPU。
【问题讨论】:
-
为什么不试试pytorch的transform方法?
-
您可以在图像预处理阶段执行此操作,然后将这批图像输入网络。这就是 pytorch 的工作方式。
-
不幸的是,在预处理期间,我还不知道
center张量。center的值每次迭代都会改变。
标签: pytorch