为什么来自keras的CNN重量只是一维的?

时间:2017-09-05 13:43:02

标签: python deep-learning keras

我使用keras构建了一个CNN,并将权重保存在* .hdf文件中。我使用了16个过滤器,内核的大小为3×3。 但第一个save_weight的{​​{1}}输出仅为Convolution2D。内核的大小为1×16,因此输出应为3×3,不应该是它吗?为什么输出表现得像这样?

这是* .hdf文件结构的屏幕截图:

1 个答案:

答案 0 :(得分:1)

您是对的:如果您使用16大小为3x3的过滤器,则会看到16x3x6个权重。当我使用免费*.h5工具从here打开VGG16网络的HDFView文件时,卷积会产生以下权重:

  

32位浮点,64 x 3 x 3 x 3

     

32位浮点64

此图层

Convolution2D(64, 3, 3, activation='relu')

因此,我认为您使用的是HDF Explorer错误(这就是我要求提供更多屏幕截图的原因)。请尝试在引用的要点中打开网络文件,如果您使用工具看到具有相同尺寸的权重,请检查。