Python 将4d张量切片为较小子传感器的4d张量(仅最后2维切片)

Python 将4d张量切片为较小子传感器的4d张量(仅最后2维切片),python,pytorch,Python,Pytorch,这个问题类似于,除了我使用张量(火炬)这一事实&我有一个4D,而不是2D,形状的张量,例如(3,1,32,32)-在我的例子中,它是3个大小为32x32的图像 我想将[I,0,:,:,:]形式的每个张量分割成更小的子数组,这样输出的形状就会是(3,16,8,8),其中每个[:,j,:,:]都是从原始图像上切下的一个小正方形。我找不到一种方法来修改建议的4D张量解 我也试着只用 subx = x.reshape(3, 16, 8, 8) 但这并没有按照我的意愿重塑它。重塑不适用于此目的。您可以查

这个问题类似于,除了我使用张量(火炬)这一事实&我有一个4D,而不是2D,形状的张量,例如(3,1,32,32)-在我的例子中,它是3个大小为32x32的图像

我想将[I,0,:,:,:]形式的每个张量分割成更小的子数组,这样输出的形状就会是(3,16,8,8),其中每个[:,j,:,:]都是从原始图像上切下的一个小正方形。我找不到一种方法来修改建议的4D张量解

我也试着只用

subx = x.reshape(3, 16, 8, 8)

但这并没有按照我的意愿重塑它。

重塑
不适用于此目的。您可以查看
skimage
,其中生成的块是输入数组的非重叠视图:

from skimage.util.shape import view_as_blocks
view_as_blocks(a, block_shape=(3,1,8,8)).reshape(3, 16, 8, 8)

这有用吗?别忘了你可以投票并接受答案。看,谢谢!