并行卷积层的keras实现

问题描述 投票:0回答:1

通常学习keras和cnn,因此尝试实现我在论文中发现的网络,其中有3个conv的并行卷积层,其中每个conv在输入上应用不同的过滤器,在这里我尝试解决它:

inp = Input(shape=(32,32,192))

conv2d_1 = Conv2D(
        filters = 32,
        kernel_size = (1, 1),
        strides =(1, 1),
        activation = 'relu')(inp)
conv2d_2 = Conv2D(
        filters = 64,
        kernel_size = (3, 3),
        strides =(1, 1),
        activation = 'relu')(inp)
conv2d_3 = Conv2D(
        filters = 128,
        kernel_size = (5, 5),
        strides =(1, 1),
        activation = 'relu')(inp)
out = Concatenate([conv2d_1, conv2d_2, conv2d_3])
model.add(Model(inp, out))

-这给我以下错误:A Concatenate layer requires inputs with matching shapes except for the concat axis....etc

  • 我尝试通过在每个Conv2D函数中添加arg input_shape = inp来解决它,现在它给了我Cannot iterate over a tensor with unknown first dimension.

ps:论文作者使用caffe实现了该网络,该层的输入为(32,32,192),合并后的输出为(32,32,224)。

tensorflow keras conv-neural-network caffe
1个回答
0
投票

除非添加填充以匹配数组形状,否则Concatenate将无法匹配它们。尝试运行此

© www.soinside.com 2019 - 2024. All rights reserved.