X_trainKeras RNN LSTM Genauigkeit nicht
[[0 1 1 1 1 0 0 0 0 0]
[0 1 1 1 1 0 0 0 0 0]
[0 1 1 1 0 0 0 0 0 0]
[0 1 0 0 0 1 1 0 0 0]
[0 1 0 0 0 1 1 0 0 0]
[0 1 1 1 1 0 0 0 0 0]]
y_train
1
1
1
0
0
1
Die dritte und vierte Spalte in X_train sind ein klarer Indikator für die Ausgabe zu verändern. Ich probiere RNN mit LSTM aus, also habe ich diese Beispieldaten gewählt und möchte dies überarbeiten.
Die Genauigkeit Veränderung ist nicht alles auf einmal nach Epochen der Ausbildung -
Epoch 1/60
6/6 [==============================] - 1s - loss: 5.3141 - acc: 0.6667
Epoch 2/60
6/6 [==============================] - 1s - loss: 5.3141 - acc: 0.6667
Epoch 3/60
6/6 [==============================] - 1s - loss: 5.3141 - acc: 0.6667
Epoch 4/60
6/6 [==============================] - 1s - loss: 5.3141 - acc: 0.6667
Epoch 5/60
6/6 [==============================] - 1s - loss: 5.3141 - acc: 0.6667
Modell
model = Sequential()
model.add(Embedding(MAX_NB_WORDS, embedding_vecor_length, input_length=max_length,batch_input_shape=(batch_size, input_dim)))
model.add(LSTM(10, return_sequences=False))
model.add(Dense(1, activation='softmax'))
Parameter
MAX_NB_WORDS = 10
embedding_vecor_length = 32
max_length = 10
batch_size = 2
input_dim = max_length
Ich benutze Theano Backend. Vermutlich fehlt etwas sehr offensichtlich. Bitte helfen Sie!
UPDATE
Apologies für eine halbe gebackene Sachen bereitstellt. Ich bin Kompilieren des Modells so -
opt = SGD(lr=0.001)
model.compile(loss='binary_crossentropy', optimizer=opt, metrics=['accuracy'])
print(model.summary())
print np.shape(X_train)
callbacks = [
# EarlyStopping(monitor='val_loss', patience=3, verbose=2),
RemoteMonitor(root='http://localhost:9000'),
ModelCheckpoint(filepath="/tmp/weights.hdf5", monitor='val_loss', verbose=0, save_best_only=False, save_weights_only=False, mode='auto')
]
print X_train
print y_train
history = model.fit(X_train, y_train, nb_epoch=60, batch_size=batch_size, callbacks=callbacks) #, validation_data=(X_val, y_val)
UPDATE2
diese Rektifiziertes durch die Aktivierungsfunktion von ‚softmax‘ auf ‚S-förmige‘ Ändern Eine richtige Erklärung fehlt. Ich denke, das "Warum" sollte die Antwort sein, nicht das Wie.
Ich kompiliere und passe das Modell an. Aktualisierte Frage bitte überprüfen @Byte_me –
aktualisiert auch –
klingt gut ... auch ich erkannte, dass es die Lernrate ... Einstellung 0,1 für so kleine Daten machte es bewegen ... meine anfängliche Lernrate betrug 0,01 –