1

私はケラスが初めてです。

私の目標は、合計 4 つの最大プーリング レイヤーを持つことです。それらはすべて形状 (N, 256) で同じ入力を取ります。最初のレイヤーは、グローバルな最大プーリングを行い、1 つの出力を提供します。N / 2 のプーリング サイズと N / 2 のストライドを持つ 2 番目のレイヤーは、2 つの出力を提供します。3 番目は 4 つの出力を提供し、4 番目は 8 つの出力を提供します。これが私のコードです。

    test_x = np.random.rand(N, 256, 1)

    model = Sequential()

    input1 = Input(shape=test_x.shape, name='input1')
    input2 = Input(shape=test_x.shape, name='input2')
    input3 = Input(shape=test_x.shape, name='input3')
    input4 = Input(shape=test_x.shape, name='input4')

    max1 = MaxPooling2D(pool_size=(N, 256), strides=N)(input1)
    max2 = MaxPooling2D(pool_size=(N / 2, 256), strides=N / 2)(input2)
    max3 = MaxPooling2D(pool_size=(N / 4, 256), strides=N / 4)(input3)
    max4 = MaxPooling2D(pool_size=(N / 8, 256), strides=N / 8)(input4)

    mrg = Merge(mode='concat')([max1, max2, max3, max4])

4 つの最大プーリング レイヤーを作成した後、それらをマージしようとしましたが、keras でこのエラーが発生します。

ValueError: 両方の形状の次元 1 は等しくなければなりませんが、入力形状 [?,1,1,1]、[?,2,1、 1]、[?,4,1,1]、[?,8,1,1]、[] および計算された入力テンソル: input[4] = <3>。

この問題を解決するにはどうすればよいですか? ケラスで私の目標を達成するための正しい方法をマージしていますか?

4

1 に答える 1