Qual è l'uso di verbose in Keras durante la convalida del modello?


96

Uso il modello LSTM per la prima volta. Ecco il mio modello:

opt = Adam(0.002)
inp = Input(...)
print(inp)
x = Embedding(....)(inp)
x = LSTM(...)(x)
x = BatchNormalization()(x)
pred = Dense(5,activation='softmax')(x)

model = Model(inp,pred)
model.compile(....)

idx = np.random.permutation(X_train.shape[0])
model.fit(X_train[idx], y_train[idx], nb_epoch=1, batch_size=128, verbose=1)

A cosa serve il verbose durante l'addestramento del modello?

Risposte:


228

Controlla la documentazione per model.fit qui .

Impostando verbose 0, 1 o 2 dici semplicemente come vuoi "vedere" l'avanzamento dell'allenamento per ogni epoca.

verbose=0 non ti mostrerà nulla (silenzioso)

verbose=1 ti mostrerà una barra di avanzamento animata come questa:

progres_bar

verbose=2 menzionerà solo il numero di epoche in questo modo:

inserisci qui la descrizione dell'immagine


21
verbose: intero. 0, 1 o 2. Modalità verbosità. 0 = silenzioso, 1 = barra di avanzamento, 2 = una riga per epoca. Grazie @ank you rock ..
rakesh

2
Questo commento è la migliore risposta alla domanda, anche meglio della risposta che viene commentata. Nota questo e cerca di evitare le parole solo per allungare la risposta. @rakesh, sei forte.
Konstantin Sekeresh

22

verbose: Integer. 0, 1 o 2. Modalità verbosità.

Verbose = 0 (silenzioso)

Verbose = 1 (barra di avanzamento)

Train on 186219 samples, validate on 20691 samples
Epoch 1/2
186219/186219 [==============================] - 85s 455us/step - loss: 0.5815 - acc: 
0.7728 - val_loss: 0.4917 - val_acc: 0.8029
Train on 186219 samples, validate on 20691 samples
Epoch 2/2
186219/186219 [==============================] - 84s 451us/step - loss: 0.4921 - acc: 
0.8071 - val_loss: 0.4617 - val_acc: 0.8168

Verbose = 2 (una riga per epoca)

Train on 186219 samples, validate on 20691 samples
Epoch 1/1
 - 88s - loss: 0.5746 - acc: 0.7753 - val_loss: 0.4816 - val_acc: 0.8075
Train on 186219 samples, validate on 20691 samples
Epoch 1/1
 - 88s - loss: 0.4880 - acc: 0.8076 - val_loss: 0.5199 - val_acc: 0.8046

Puoi spiegare perché non ottengo l'output atteso per diverse versioni di verbose. Ricevo lo stesso output [silenzioso] per verbose = 0 e 2 per il mio file? E per verbose = 1, visualizzo la barra di avanzamento solo alla fine di epoche come Epoch 10/10 - 21s - loss: 0.2354 - acc: 0.9286 - val_loss: 0.2206 - val_acc: 0.9344 [======== ======================] Precisione: 0.9344 Errore: 6.560000000000002
Dr Nisha Arora

ottima risposta, mi ha aiutato. Valido per tensorflow 2.2
Bobs Burgers

9

Per verbose> 0, fitlog del metodo:

  • perdita : valore della funzione di perdita per i dati di allenamento
  • acc : valore di precisione per i dati di allenamento.

Nota: se vengono utilizzati meccanismi di regolarizzazione, vengono attivati ​​per evitare l'overfitting.

se validation_datao gli validation_splitargomenti non sono vuoti, i fitlog del metodo:

  • val_loss : valore della funzione di perdita per i dati di convalida
  • val_acc : valore di precisione per i dati di convalida

Nota: i meccanismi di regolarizzazione sono disattivati ​​al momento del test perché stiamo utilizzando tutte le funzionalità della rete.

Ad esempio, l'utilizzo verbosedurante l'allenamento del modello aiuta a rilevare l'overfitting che si verifica se acccontinui a migliorare mentre val_accpeggiora.


Che rilevanza è la regolarizzazione per il parametro verbosità ?!
Chrisji

Il parametro dettagliato non ha alcun impatto sui meccanismi di regolarizzazione. Sto solo aggiungendo informazioni su ciò che viene visualizzato se verbose è abilitato (per rispondere alla domanda iniziale "Qual è l'uso di verbose durante l'addestramento del modello?" => Es: evitare l'overfitting confrontando acc e val_acc).
Hugo Bevilacqua

2

Per impostazione predefinita verbose = 1,

verbose = 1, che include sia la barra di avanzamento che una riga per epoca

verbose = 0, significa silenzioso

verbose = 2, una riga per epoca cioè n. epoca / n. totale di epoche


0

L'ordine dei dettagli forniti con il flag dettagliato è come

Meno dettagli .... Più dettagli

0 <2 <1

L'impostazione predefinita è 1

Per l'ambiente di produzione, si consiglia 2

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.