在CNN中,如何查看多个过滤器的权重?

时间:2019-05-16 08:16:13

标签: python keras

我试图更好地了解CNN,因此我正在使用keras基本上制作一个小的CNN,并希望手工进行计算。

我从GTSRB数据库下载了图像,然后使用PIL库软件包将图像集转换为灰度并调整为(6 x 6)。

以下代码显示了我创建的CNN。 它包括1个卷积层(带有2个2x2大小的滤镜),1个最大池化层(2x2),一个平整层和最后一个密集层。

model = keras.models.Sequential()
model.add(keras.layers.Conv2D(2, kernel_size=(2,2),activation='relu', input_shape=(6,6,1)))
model.add(keras.layers.MaxPool2D(pool_size=(2,2)))
model.add(keras.layers.Flatten())
model.add(keras.layers.Dense(len(sign_label_list),activation='relu'))

然后我训练了网络并保存了模型和权重。

我在线阅读了有关检查权重(h5文件类型)的信息,我需要一个工具来查看权重。因此,我下载了HDFView工具。

现在,我正在尝试查看每个过滤器的权重,但是我只能看到1个过滤器的权重。

Filter weights

如何获得两个过滤器的权重?

有人知道是否可以通过python查看权重吗?

最初,我只想使用1个过滤器进行测试,但是查看权重时得到nan

1 个答案:

答案 0 :(得分:0)

仔细阅读文档和Keras FAQ found here

查看特定图层权重的建议方法是:

weights,biases = model.layers[0].get_weights()

然后我使用print(weights)将权重打印到控制台,这将显示所有过滤器的值。

但是,我仍然无法使用HDFView工具查看多个过滤器的权重。