我是 keras 的新手。
我的目标是总共拥有 4 个最大池化层。它们都采用形状相同的输入 (N, 256)。第一层进行全局最大池化并给出 1 个输出。第二层池大小为 N / 2,步幅为 N / 2,提供 2 个输出。第三个给出 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 必须相等,但对于具有输入形状的“merge_1/concat”(操作:“ConcatV2”)为 4 和 8:[?,1,1,1], [?,2,1, 1], [?,4,1,1], [?,8,1,1], [] 和计算的输入张量:input[4] = <3>。
我该如何解决这个问题?合并正确的方法来实现我在 keras 中的目标吗?