我有一个被定义为Conv2D层的代码块:
Conv2D(96, kernel_size=(5, 5),
activation='relu',
input_shape=(image_rows, image_cols, 1),
kernel_initializer=initializers.glorot_normal(seed),
bias_initializer=initializers.glorot_uniform(seed),
padding='same',
name='conv_1')
这是我的网络中的第一层。
输入尺寸为64x160,图像为1通道。
我正在尝试可视化这个卷积层中的权重,但不确定如何获取它们。
这是我现在的方法:
1.调用
layer.get_weights()[0]
这将返回一个形状为(5, 5, 1, 96)的数组。其中1是因为图像为1通道。
2.通过取5乘5的过滤器
layer.get_weights()[0][:,:,:,j][:,:,0]
这个看起来很丑陋,但我不确定如何简化它,非常欢迎任何评论。
我不确定这5 x 5的方块是不是滤镜?
如果不是,请问如何正确地从模型中获取滤镜?
x1w = x.get_weights()[0][:,:,0,:]
中,[:,:,0,:]
中的0。我认为前两个维度是卷积核的x和y,最后一个是卷积核的数量-但我不知道第三个维度是什么。它似乎是上一层输出的维度,但我不明白为什么或者这真正意味着什么。 - wordsforthewise