我的任务是在cnn层中可视化绘制的权重,现在当我传递参数filters = 32
和kernel_size = (3, 3)
时,我期望通过使用{,输出为32个矩阵,每个矩阵的3x3尺寸{1}}函数(提取权重和偏差),但是我得到了一个非常奇怪的嵌套输出,
输出如下:
.get_weights()
a = model.layers[0].get_weights()
a[0][0][0]
我想知道为什么我会得到这种奇怪的输出,以及如何获得理想形状的砝码。预先感谢。
答案 0 :(得分:2)
神经网络中的权重是代表输入节点和输出节点(或下一层的节点)之间的连接强度的值。 Conv2D图层的权重通常为(H,W,I,O)形状,其中:-
Conv2D权重可以解释为输入通道的一部分与输出滤波器/功能图中的节点之间的连接强度。这样,您将在每个输入通道和每个输出通道之间具有shape(H,W)的权重。应当注意,权重在同一信道的不同补丁之间共享。
考虑下面的(8,8,1)输入与(2,2)内核的卷积和与(8,8,1)输出的卷积。该层的权重具有形状(2,2,1,1,1) 可以使用相同的输入使用2(2,2)过滤器生成2个特征图,如下所示。现在,权重的形状将为(2,2,1,2)。
希望这将阐明如何解释卷积层的形状。
答案 1 :(得分:1)
来自Conv2D层的内核权重的形状为scaleX
。所以就你而言
scaleY
如果您要打印其中一个过滤器的重量,则可以
group