gpt4 book ai didi

python - Keras:将模型扁平化输出与向量连接起来

转载 作者:行者123 更新时间:2023-11-28 21:06:17 26 4
gpt4 key购买 nike

我有一个这样定义的 Keras 模型:

model = Sequential()
model.add(embedding_layer)
model.add(Conv1D(filters=256, kernel_size=3, activation='relu', padding='same'))
model.add(MaxPooling1D(pool_size=3))
model.add(Flatten())
model.add(Dense(num_classes, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam')

Flatten() 层之后,我想连接 2 个附加特征,即如果 Flatten() 给我一个大小为 (1, n) 的向量 (model.output_shape == (None, n)), 我想连接一个单独的 numpy 大小为 (1, 2) 的数组,所以 model.output_shape == (无,n+2)。我该怎么做呢?

我认为keras.layers.merge.Concatenate是我在这里寻找的,但我不知道如何实现它。网上的例子不多,Keras 2.0 也使用了更新的语法。任何帮助将不胜感激。

最佳答案

我玩了一下,弄明白了。对于任何感兴趣的人:这是 Keras 函数式 API 的一个很好的用例,它总是返回张量,您可以在张量上执行张量操作。

embedded_sequence = embedding_layer(sequence_input)
x = Conv1D(filters=256, kernel_size=3, activation='relu', padding='same')(embedded_sequence)
x = MaxPooling1D(pool_size=3)(x)
x = Flatten()(x)

# additional features input
from keras.layers.merge import Concatenate
af_input = Input(shape=(data['af_train'].shape[1],), name='af_input')
x = Concatenate()([x, af_input])

# output
main_output = Dense(num_classes, activation='sigmoid', name='main_output')(x)

model = Model(inputs=[sequence_input, af_input], outputs=main_output)
model.compile(loss='binary_crossentropy', optimizer='adam')

关于python - Keras:将模型扁平化输出与向量连接起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43011070/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com