Jaki jest pożytek z gadatliwości w Keras podczas walidacji modelu?

89

Po raz pierwszy uruchamiam model LSTM. Oto mój model:

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)

Jaki jest pożytek z gadatliwości podczas trenowania modelu?

rakesh
źródło

Odpowiedzi:

210

Sprawdź dokumentację modelu . Pasuje tutaj .

Ustawiając szczegółowe 0, 1 lub 2, po prostu mówisz, jak chcesz „zobaczyć” postęp treningu w każdej epoce.

verbose=0 nic ci nie pokaże (cicho)

verbose=1 pokaże animowany pasek postępu, taki jak ten:

progres_bar

verbose=2 wspomnę tylko o liczbie epok, takich jak ta:

wprowadź opis obrazu tutaj

Ankit
źródło
20
verbose: Integer. 0, 1 lub 2. Tryb oznajmiania. 0 = cichy, 1 = pasek postępu, 2 = jedna linia na epokę. Dzięki @ank you rock ..
rakesh
2
Ten komentarz jest najlepszą odpowiedzią na pytanie, nawet lepszą niż komentowana odpowiedź. Zwróć na to uwagę i staraj się unikać słów, aby przedłużyć odpowiedź. @rakesh, rządzisz.
Konstantin Sekeresh
19

verbose: Integer. 0, 1 lub 2. Tryb oznajmiania.

Verbose = 0 (cichy)

Verbose = 1 (pasek postępu)

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 (jeden wiersz na epokę)

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
Ashok Kumar Jayaraman
źródło
Czy możesz wyjaśnić, dlaczego nie uzyskuję oczekiwanego wyniku przy różnych rodzajach gadatliwości. Otrzymuję takie same [ciche] dane wyjściowe dla trybu verbose = 0 i 2 dla mojego pliku? A dla verbose = 1, pasek postępu pojawia się dopiero pod koniec epok takich jak Epoka 10/10 - 21s - strata: 0,2354 - acc: 0.9286 - val_loss: 0.2206 - val_acc: 0.9344 [======== ======================] Dokładność: 0,9344 Błąd: 6.560000000000002
Dr Nisha Arora
świetna odpowiedź, pomogła mi. Obowiązuje dla tensorflow 2.2
Bobs Burgers
9

Dla verbose> 0 fitdzienniki metod:

  • loss : wartość funkcji utraty danych treningowych
  • acc : wartość dokładności danych treningowych.

Uwaga: jeśli używane są mechanizmy regularyzacji, są one włączone, aby uniknąć nadmiernego dopasowania.

jeśli validation_datalub validation_splitargumenty nie są puste, fitdzienniki metod:

  • val_loss : wartość funkcji utraty dla danych walidacyjnych
  • val_acc : wartość dokładności danych walidacyjnych

Uwaga: Mechanizmy regularyzacyjne są wyłączone w czasie testowania, ponieważ wykorzystujemy wszystkie możliwości sieci.

Na przykład używanie verbosemodelu podczas treningu pomaga wykryć nadmierne dopasowanie, które występuje, gdy twój stan się accpoprawia, a stan się val_accpogarsza.

Hugo Bevilacqua
źródło
Jakie znaczenie ma uregulowanie parametru gadatliwości ?!
Chrisji,
Parametr gadatliwy nie ma wpływu na mechanizmy regularyzacji. Po prostu dodaję informacje o tym, co jest wyświetlane, jeśli włączona jest pełna informacja (aby odpowiedzieć na początkowe pytanie „Jaki jest pożytek z informacji szczegółowej podczas uczenia modelu?” => Np. Unikanie nadmiernego dopasowania przez porównanie acc i val_acc).
Hugo Bevilacqua
1

Domyślnie verbose = 1,

verbose = 1, co obejmuje zarówno pasek postępu, jak i jedną linię na epokę

verbose = 0, oznacza milczenie

verbose = 2, jedna linia na epokę, tj. nr epoki / nr ogółem epok

Ashiq Imran
źródło
0

Kolejność szczegółów podanych z flagą szczegółową jest następująca

Mniej szczegółów… Więcej szczegółów

0 <2 <1

Wartość domyślna to 1

W przypadku środowiska produkcyjnego zalecane jest 2

DevLoverUmar
źródło