¿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?

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í


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

¿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.


¿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


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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.