J'ai essayé un modèle lstm simple dans keras pour faire une simple analyse de sentiment en utilisant le jeu de données imdb en utilisant à la fois le modèle Sequential et le modèle Model, et il s'avère que ce dernier donne un résultat plus mauvais. Voici mon code:Pourquoi le modèle Keras Sequential a-t-il donné un résultat différent par rapport au modèle Model?
model = Sequential()
model.add(Embedding(top_words, embedding_vector_length, input_length=max_review_length))
model.add(LSTM(100))
model.add(Dense(2, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['accuracy'])
Il donne un résultat d'environ 0,6 de précision dans la première époque, tandis que l'autre code Util modèle:
_input = Input(shape=[max_review_length], dtype='int32')
embedded = Embedding(
input_dim=top_words,
output_dim=embedding_size,
input_length=max_review_length,
trainable=False,
mask_zero=False
)(_input)
lstm = LSTM(100, return_sequences=True)(embedded)
probabilities = Dense(2, activation='softmax')(lstm)
model = Model(_input, probabilities)
model.compile(loss='categorical_crossentropy',
optimizer='rmsprop',
metrics=['accuracy'])
et donne une précision de 0.5 à la suite de la première époque et ne change jamais après.
Une raison pour cela, ou est-ce que je fais quelque chose de mal? Merci à l'avance
Merci pour l'aperçu, la partie return_sequence est ma faute de frappe car j'ai copié le code en partie de mon autre projet. Mais le changement du trainable en True aide vraiment !! –