Numpy中的transpose函数

transpose()的操作对象是矩阵。

我们用一个例子来说明这个函数:
[[[0 1]
[2 3]]

[[4 5]
[6 7]]]

这是一个shape为(2,2,2)的矩阵,现在对它进行transpose操作。
首先我们对矩阵的维度进行编号,上述矩阵有三个维度,则编号分别为0,1,2,而transpose函数的参数输入就是基于这个编号的,如果我们调用transpose(0,1,2),那么矩阵将不发生变化,如果我们不输入参数,直接调用transpose(),其效果就是将矩阵进行转置,起作用等价与transpose(2,1,0)。

在举个例子,对上面那个矩阵调用transpose(0,2,1)
下面为结果
[[[0 2]
[1 3]]

[[4 6]
[5 7]]]
其实就是矩阵中每个元素按照一样的规则进行位置变换。

net.params[‘conv1_1’][0].data.transpose(0,2,3,1)
想要理解这种维数比较多的变换,得先找到变换过后的最底层,在这里就是输入维度,那么最基础的元素就是每一个过滤器在不同的输入维度上的权值。