Quelle est l'utilité de verbose dans Keras lors de la validation du modèle?

89

J'utilise le modèle LSTM pour la première fois. Voici mon modèle:

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)

Quelle est l'utilité de verbeux lors de l'entraînement du modèle?

râteau
la source

Réponses:

210

Consultez la documentation de model.fit ici .

En définissant verbose 0, 1 ou 2, vous dites simplement comment vous voulez «voir» la progression de l'entraînement pour chaque époque.

verbose=0 ne vous montrera rien (silencieux)

verbose=1 vous montrera une barre de progression animée comme celle-ci:

progres_bar

verbose=2 mentionnera simplement le nombre d'époque comme ceci:

entrez la description de l'image ici

Ankit
la source
20
verbeux: entier. 0, 1 ou 2. Mode de verbosité. 0 = silencieux, 1 = barre de progression, 2 = une ligne par époque. Merci @ank you rock ..
rakesh
2
Ce commentaire est la meilleure réponse à la question, encore mieux que la réponse commentée. Notez ceci et essayez d'éviter les mots juste pour allonger la réponse. @rakesh, vous basculez.
Konstantin Sekeresh
19

verbose: Integer. 0, 1 ou 2. Mode de verbosité.

Verbose = 0 (silencieux)

Verbose = 1 (barre de progression)

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 (une ligne par époque)

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
la source
Pouvez-vous expliquer pourquoi je n'obtiens pas la sortie attendue pour différents vakues de verbeux. J'obtiens la même sortie [silencieuse] pour verbose = 0 et 2 pour mon fichier? Et pour verbose = 1, je n'obtiens la barre de progression qu'à la fin des époques comme Epoch 10/10 - 21s - loss: 0.2354 - acc: 0.9286 - val_loss: 0.2206 - val_acc: 0.9344 [========= ======================] Précision: 0.9344 Erreur: 6.560000000000002
Dr Nisha Arora
excellente réponse, m'a aidé. Valable pour tensorflow 2.2
Bobs Burgers
9

Pour verbose> 0, les fitjournaux de méthode:

  • perte : valeur de la fonction de perte pour vos données d'entraînement
  • acc : valeur de précision de vos données d'entraînement.

Remarque: si des mécanismes de régularisation sont utilisés, ils sont activés pour éviter le surajustement.

si validation_dataou les validation_splitarguments ne sont pas vides, la fitméthode enregistre:

  • val_loss : valeur de la fonction de perte pour vos données de validation
  • val_acc : valeur de précision de vos données de validation

Remarque: les mécanismes de régularisation sont désactivés au moment du test car nous utilisons toutes les capacités du réseau.

Par exemple, l'utilisation verbosedu modèle pendant l'entraînement permet de détecter le surajustement qui se produit si vous acccontinuez à vous améliorer alors que votre état val_accempire.

Hugo Bevilacqua
la source
Quelle est la pertinence de la régularisation par rapport au paramètre de verbosité?!
Chrisji
Le paramètre verbeux n'a aucun impact sur les mécanismes de régularisation. J'ajoute simplement des informations sur ce qui est affiché si verbose est activé (pour répondre à la question initiale "Quelle est l'utilité de verbose lors de l'entraînement du modèle?" => Ex: éviter le surajustement en comparant acc et val_acc).
Hugo Bevilacqua
1

Par défaut verbeux = 1,

verbose = 1, qui comprend à la fois la barre de progression et une ligne par époque

verbose = 0, signifie silencieux

verbeux = 2, une ligne par époque, c'est-à-dire n ° d'époque / n ° total. d'époques

Ashiq Imran
la source
0

L'ordre des détails fournis avec l'indicateur détaillé sont comme

Moins de détails ... Plus de détails

0 <2 <1

La valeur par défaut est 1

Pour l'environnement de production, 2 est recommandé

DevLoverUmar
la source