如何在 numpy 中进行这样定义的 4 维数组转置

How to do a 4-d array transpose defined as such in numpy

假设我们有一个形状为 (A,B,C,D) 的 4 维矩阵 f。我们想在 f_transpose(i,j,k,c) = f(A-i+1,B-j+1,c,k) 处进行这样的转置。这个和convnet的反向传播有关,应用conv算子得到conv层的梯度。谁能帮我吗?

您想反转前两个轴并交换后两个轴。可以使用 ::-1 切片来反转轴,切换轴是 numpy.swapaxes:

g = numpy.swapaxes(f, 2, 3)[::-1, ::-1]