在我的计算管道中,我使用了自定义函数来创建自定义 keras 块,并且我多次使用此块Conv2D。最后,我得到了两个不同的张量,它们具有不同张量形状的特征图:TensorShape([None, 21, 21, 64])和TensorShape([None, 10, 10, 192])。在这种情况下,使用tf.keras.layers.concatenate串联对我来说不起作用。谁能指出如何将这两个张量连接成一个?有什么想法可以实现这一点吗?
如果我能够将形状为TensorShape([None, 21, 21, 64])和 的张量连接起来TensorShape([None, 10, 10, 192]),我想在连接后执行以下操作。
x = Conv2D(32, (2, 2), strides=(1,1), padding='same')(merged_tensors)
x = BatchNormalization(axis=-1)(x)
x = Activation('relu')(x)
x = MaxPooling2D(pool_size=(2,2))(x)
x = Flatten()(x)
x = Dense(256)(x)
x = BatchNormalization()(x)
x = Activation('relu')(x)
x = Dropout(0.25)(x)
x = Dropout(0.25)(x)
x = Dense(10)(x)
x = Activation('softmax')(x)
outputs = x
model = tf.keras.Model(inputs=inputs, outputs=outputs)
我尝试在 1D 卷积中重塑形状为TensorShape([None, 21, 21, 64])和 的张量TensorShape([None, 10, 10, 192])并进行合并,然后将输出重塑回 2d 卷积。我的方法行不通。谁能建议可能的方法来做到这一点?有什么想法吗?
更新
我仍然不确定获得串联输出形状的方式是否有效,TensorShape([None, 21+10, 21+10, 192+64])因为我不确定它从数学角度来看是否有意义。如何使这种串联变得简单且正确?连接的正确形状是什么?任何想法?
偶然的你
相关分类