¿Cuál es el uso de verbose en Keras al validar el modelo?

89

Estoy ejecutando el modelo LSTM por primera vez. Aquí está mi modelo:

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)

¿Cuál es el uso de verbose durante el entrenamiento del modelo?

rakesh
fuente

Respuestas:

210

Consulte la documentación de model.fit aquí .

Al establecer detallado 0, 1 o 2, simplemente diga cómo desea "ver" el progreso del entrenamiento para cada época.

verbose=0 no te mostrará nada (silencioso)

verbose=1 le mostrará una barra de progreso animada como esta:

progres_bar

verbose=2 solo mencionaré el número de época así:

ingrese la descripción de la imagen aquí

Ankit
fuente
20
detallado: Entero. 0, 1 o 2. Modo de verbosidad. 0 = silencioso, 1 = barra de progreso, 2 = una línea por época. Gracias @ank you rock ..
rakesh
2
Este comentario es la mejor respuesta a la pregunta, incluso mejor que la respuesta que se comenta. Tenga en cuenta esto y trate de evitar las palabras solo para hacer la respuesta más larga. @rakesh, eres genial.
Konstantin Sekeresh
19

verbose: Integer. 0, 1 o 2. Modo de verbosidad.

Detallado = 0 (silencioso)

Detallado = 1 (barra de progreso)

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

Verboso = 2 (una línea por época)

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
fuente
¿Puede explicar por qué no obtengo el resultado esperado para diferentes vakues de verboso? ¿Obtengo la misma salida [silenciosa] para verbose = 0 y 2 para mi archivo? Y para verbose = 1, obtengo la barra de progreso solo al final de épocas como Epoch 10/10 - 21s - loss: 0.2354 - acc: 0.9286 - val_loss: 0.2206 - val_acc: 0.9344 [======== ======================] Precisión: 0.9344 Error: 6.560000000000002
Dra. Nisha Arora
gran respuesta, me ayudó. Válido para tensorflow 2.2
Bobs Burgers
9

Para verbose> 0, fitregistros de métodos:

  • pérdida : valor de la función de pérdida para sus datos de entrenamiento
  • acc : valor de precisión para tus datos de entrenamiento.

Nota: Si se utilizan mecanismos de regularización, se activan para evitar el sobreajuste.

si los argumentos validation_datao validation_splitno están vacíos, los fitregistros del método:

  • val_loss : valor de la función de pérdida para sus datos de validación
  • val_acc : valor de precisión para sus datos de validación

Nota: Los mecanismos de regularización están desactivados en el momento de la prueba porque estamos utilizando todas las capacidades de la red.

Por ejemplo, usar verboseel modelo durante el entrenamiento ayuda a detectar el sobreajuste que se produce si accsigue mejorando mientras val_accempeora.

Hugo Bevilacqua
fuente
¿Qué relevancia tiene la regularización para el parámetro de verbosidad?
Chrisji
El parámetro detallado no tiene ningún impacto en los mecanismos de regularización. Solo estoy agregando información sobre lo que se muestra si verbose está habilitado (para responder a la pregunta inicial "¿Cuál es el uso de verbose mientras se entrena el modelo?" => Ej: evitar el sobreajuste comparando acc y val_acc).
Hugo Bevilacqua
1

Por defecto detallado = 1,

verbose = 1, que incluye tanto la barra de progreso como una línea por época

verbose = 0, significa silencioso

detallado = 2, una línea por época, es decir, no de época / no total. de épocas

Ashiq Imran
fuente
0

El orden de los detalles proporcionados con el indicador detallado es el

Menos detalles .... Más detalles

0 <2 <1

El valor predeterminado es 1

Para el entorno de producción, se recomienda 2

DevLoverUmar
fuente