【问题标题】:A `Concatenate` layer requires inputs with matching shapes except for the concat axis Keras“连接”层需要具有匹配形状的输入,连接轴 Keras 除外
【发布时间】:2020-10-03 10:06:40
【问题描述】:

我是深度学习和编码的新手。

我正在尝试将分类嵌入层与数字特征连接起来,以适应多类分类的模型。但是,即使我尝试Reshape 输入,也无法连接层。任何帮助都非常感谢。

这是我的音频输入:

# fill in the 31 features grabbed from the original data set
audio_input = Input(shape=(31,), name='audio_features')
audio_input = Reshape((1,31))(audio_input)

这是我的嵌入层,reference1reference2

time_signature_input = Input(shape=(1,), name='time_signature')
time_signature_embedded = Embedding(train.time_signature.max()+1, min(600, round(1.6 * time_signature_size**0.56)), input_length=1, name='time_signature_embedded')(time_signature_input)

当我尝试连接时:

concatenated = Concatenate()([cats,audio_input])
out = layers.Flatten()(concatenated)

我得到了错误:

A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got inputs shapes: [((None, 1, 6),(None, 1, 31)]

【问题讨论】:

    标签: python tensorflow keras concatenation


    【解决方案1】:

    试试这个,

    audio_input = Input(shape=(31,), name='audio_features')
    time_signature_input = Input(shape=(1,), name='time_signature')
    
    nb_unique_classes = train.time_signature.max()+1
    embedding_size = min(600, round(1.6 * time_signature_size**0.56))
        
    time_signature_embedded = Embedding(nb_unique_classes , embedding_size , input_length=1, name='time_signature_embedded')(time_signature_input)
    time_signature_embedded = Reshape(target_shape=(embedding_size,))(time_signature_embedded)  
    
    model_layers = concatenate([time_signature_embedded] + [audio_input])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-03
      • 1970-01-01
      • 2020-02-04
      • 1970-01-01
      • 2023-04-03
      相关资源
      最近更新 更多