首页 > 解决方案 > 如果我从 Keras 创建一个 LSTM 模型,然后从头开始创建一个神经网络,是否有可能?

问题描述

我想问一下,使用 Keras 的 LSTM 模型是否可以从零开始用神经网络继续?如果我使用完整的库,这是我的编码:

visible = Input(shape=(MAX_SEQUENCE_LENGTH,), dtype='int32')
embedding = Embedding(len(word_index) + 1, EMBEDDING_DIM, weights = [embedding_matrix], input_length = MAX_SEQUENCE_LENGTH, trainable=False, name = 'embeddings')(visible)
lstm, states_h, states_c = LSTM(60, return_sequences=True, return_state=True, kernel_initializer="random_normal")(embedding)
pooling = GlobalMaxPool1D()(lstm)
hidden = Dense(10, activation='relu')(pooling)
output = Dense(2, activation='softmax')(hidden)

从上面的编码中,是否可以用我自己的从头开始的神经网络替换 Dense() 层?

标签: pythontensorflowkerasneural-networklstm

解决方案


你的变量hidden没有定义,所以我真的不知道你想在这里完成什么,但我认为你应该能够做这样的事情:

visible = Input(shape=(MAX_SEQUENCE_LENGTH,), dtype='int32')
embedding = Embedding(len(word_index) + 1, EMBEDDING_DIM, weights = [embedding_matrix], input_length = MAX_SEQUENCE_LENGTH, trainable=False, name = 'embeddings')(visible)
lstm, states_h, states_c = LSTM(60, return_sequences=True, return_state=True, kernel_initializer="random_normal")(embedding)
pooling = GlobalMaxPool1D()(lstm)
output = your_model(hidden)

您只需要确保模型的形状与hidden

编辑:我没有看到你想从头开始制作模型。然后你必须制作一个自定义的 keras 层,这里有很好的解释:https ://keras.io/guides/making_new_layers_and_models_via_subclassing/


推荐阅读