2016-05-03 27 views
5
model.fit(X_train, y_train, batch_size = batch_size, 
    nb_epoch = 4, validation_data = (X_test, y_test), 
    show_accuracy = True)  
score = model.evaluate(X_test, y_test, 
    batch_size = batch_size, show_accuracy = True, verbose=0) 

fornisce output scalare e quindi il codice seguente non funziona.Come ottenere punteggio e precisione dopo l'allenamento

print("Test score", score[0]) 
print("Test accuracy:", score[1]) 

L'output che ottengo è: Treno sul 20000 campioni, convalidare il 5000 campioni

versione
Epoch 1/4 

20000/20000 [==============================] - 352s - loss: 0.4515 - val_loss: 0.4232 

Epoch 2/4 

20000/20000 [==============================] - 381s - loss: 0.2592 - val_loss: 0.3723 

Epoch 3/4 

20000/20000 [==============================] - 374s - loss: 0.1513 - val_loss: 0.4329 

Epoch 4/4 

20000/20000 [==============================] - 380s - loss: 0.0838 - val_loss: 0.5044 

Keras 1.0

Come posso ottenere l'accuratezza come bene? Si prega di aiutare

+0

Cosa intendi per punteggio del test? È una perdita di prova? –

+0

È possibile stampare history.history.keys()? –

+0

Le chiavi sono perdita e val_loss. –

risposta

4

Se si utilizza Sequential modello si può provare (codice aggiornato):

nb_epochs = 4 
history = model.fit(X_train, y_train, batch_size = batch_size, 
nb_epoch = nb_epochs, validation_data = (X_test, y_test), 
show_accuracy = True) 

print("Test score", history.history["val_loss"][nb_epochs - 1]) 
print("Test acc", history.history["val_acc"][nb_epochs - 1]) 
+0

Grazie Marcin ma il mio modello non genera alcun campo val_acc come si vede dall'output di model.fit. Sto indovinando la show_accuracy = Il vero argomento non funziona nel mio caso –

+0

Potresti stampare quale tipo di campi ha il tuo dizionario di cronologia (ad esempio stampandolo)? Usi il modello sequenziale? Quale versione di Keras hai? –

+0

Io uso il modello sequenziale –

3

Grazie Marcin e lei ha ragione.

Il codice deve essere così

model.compile(loss='binary_crossentropy', 
      optimizer = 'adam', 
      metrics=["accuracy"]) 

show_accuracy nulla serve in model.fit e deve essere rimosso da lì.