gpt4 book ai didi

python - 使用Keras构建LSTM+Conv2D模型

转载 作者:行者123 更新时间:2023-11-30 09:05:08 24 4
gpt4 key购买 nike

我想构建一个类似于此架构的模型:- enter image description here

我当前的 LSTM 模型如下:-

x = Embedding(max_features, embed_size, weights=[embedding_matrix],trainable=False)(inp)
x = SpatialDropout1D(0.1)(x)
x = Bidirectional(CuDNNLSTM(128, return_sequences=True))(x)
x = Bidirectional(CuDNNLSTM(64, return_sequences=True))(x)
avg_pool = GlobalAveragePooling1D()(x)
max_pool = GlobalMaxPooling1D()(x)
conc = concatenate([avg_pool, max_pool])
conc = Dense(64, activation="relu")(conc)
conc = Dropout(0.1)(conc)
outp = Dense(1, activation="sigmoid")(conc)
model = Model(inputs=inp, outputs=outp)
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=[f1])

如何在 BiLSTM 之后使用 Conv2D 层以及 2D Max Pooling 层?

最佳答案

Conv2d需要形状为:(batch, rows, col, channel) 的 4D 张量。在 NLP 问题中,与计算机视觉不同,我们没有 channel 。 可以做什么?

我们可以使用 expand_dims 添加额外的维度函数作为我们的张量的 channel 。例如,如果我们的张量的形状为 (batch, seq, dim),那么在扩展后,它会转换为 (batch, seq, dim, 1)

lstm = Bidirectional(LSTM(128, return_sequences=True))(embed)
lstm = K.expand_dims(lstm, axis=-1)
conv2d = Conv2D(filters=128, kernel_size=2, padding='same')(lstm)

关于python - 使用Keras构建LSTM+Conv2D模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53904688/

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