tutorial example español keras tensorboard

example - tensorboard keras tutorial



¿Cómo uso la devolución de llamada de Tensorboard de Keras? (10)

Aquí hay un código:

K.set_learning_phase(1) K.set_image_data_format(''channels_last'') tb_callback = keras.callbacks.TensorBoard( log_dir=log_path, histogram_freq=2, write_graph=True ) tb_callback.set_model(model) callbacks = [] callbacks.append(tb_callback) # Train net: history = model.fit( [x_train], [y_train, y_train_c], batch_size=int(hype_space[''batch_size'']), epochs=EPOCHS, shuffle=True, verbose=1, callbacks=callbacks, validation_data=([x_test], [y_test, y_test_coarse]) ).history # Test net: K.set_learning_phase(0) score = model.evaluate([x_test], [y_test, y_test_coarse], verbose=0)

Básicamente, histogram_freq=2 es el parámetro más importante para sintonizar al llamar a esta devolución de llamada: establece un intervalo de épocas para llamar a la devolución de llamada, con el objetivo de generar menos archivos en los discos.

Así que aquí hay un ejemplo de visualización de la evolución de los valores para la última convolución a lo largo del entrenamiento, una vez visto en TensorBoard, en la pestaña "histogramas" (y encontré que la pestaña "distribuciones" contiene gráficos muy similares, pero al revés):

En caso de que desee ver un ejemplo completo en contexto, puede consultar este proyecto de código abierto: https://github.com/Vooban/Hyperopt-Keras-CNN-CIFAR-100

He construido una red neuronal con Keras. Visualizaría sus datos por Tensorboard, por lo tanto, he utilizado:

keras.callbacks.TensorBoard(log_dir=''/Graph'', histogram_freq=0, write_graph=True, write_images=True)

como se explica en keras.io . Cuando ejecuto la devolución de llamada obtengo <keras.callbacks.TensorBoard at 0x7f9abb3898> , pero no obtengo ningún archivo en mi carpeta "Graph". ¿Hay algo mal en cómo he usado esta devolución de llamada?


Así es como se usa la keras.io :

from keras.callbacks import TensorBoard tensorboard = TensorBoard(log_dir=''./logs'', histogram_freq=0, write_graph=True, write_images=False) # define model model.fit(X_train, Y_train, batch_size=batch_size, epochs=nb_epoch, validation_data=(X_test, Y_test), shuffle=True, callbacks=[tensorboard])


Cambio

keras.callbacks.TensorBoard(log_dir=''/Graph'', histogram_freq=0, write_graph=True, write_images=True)

a

tbCallBack = keras.callbacks.TensorBoard(log_dir=''Graph'', histogram_freq=0, write_graph=True, write_images=True)

y configura tu modelo

tbCallback.set_model(model)

Corre en tu terminal

tensorboard --logdir Graph/


Cree la devolución de llamada de Tensorboard:

history = model.fit(X_train, y_train, epochs=200, callbacks=[tb])

Pase la devolución de llamada de Tensorboard a la llamada de ajuste:

import keras.backend as K K.clear_session()

Al ejecutar el modelo, si obtiene un error de Keras de

"Debe alimentar un valor para el tensor de marcador de posición"

intente restablecer la sesión de Keras antes de la creación del modelo haciendo:

import tensorboardcolab as tb tbc = tb.TensorBoardColab() tensorboard = tb.TensorBoardColabCallback(tbc) history = model.fit(x_train,# Features y_train, # Target vector batch_size=batch_size, # Number of observations per batch epochs=epochs, # Number of epochs callbacks=[early_stopping, tensorboard], # Early stopping verbose=1, # Print description after each epoch validation_split=0.2, #used for validation set every each epoch validation_data=(x_test, y_test)) # Test data-set to evaluate the model in the end of training


Debe consultar Losswise ( https://losswise.com ), tiene un complemento para Keras que es más fácil de usar que Tensorboard y tiene algunas características adicionales agradables. Con Losswise, solo usaría from losswise.libs import LosswiseKerasCallback y luego callback = LosswiseKerasCallback(tag=''my fancy convnet 1'') y callback = LosswiseKerasCallback(tag=''my fancy convnet 1'') listo (consulte https://docs.losswise.com/#keras-plugin )


Hay pocas cosas

Primero, no /Graph pero ./Graph

En segundo lugar, cuando usa la devolución de llamada TensorBoard, siempre pase los datos de validación, porque sin ella, no comenzaría.

Tercero, si desea usar cualquier cosa excepto resúmenes escalares, entonces solo debe usar el método de fit porque fit_generator no funcionará. O puede reescribir la devolución de llamada para trabajar con fit_generator .

Para agregar devoluciones de llamada, simplemente agréguela a model.fit(..., callbacks=your_list_of_callbacks)


Si está trabajando con la biblioteca Keras y desea utilizar el tensorboard para imprimir sus gráficos de precisión y otras variables, a continuación se detallan los pasos a seguir.

Paso 1: Inicialice la biblioteca de devolución de llamada de Keras para importar el tensorboard mediante el siguiente comando

from keras.callbacks import TensorBoard

Paso 2: incluye el siguiente comando en tu programa justo antes del comando "model.fit ()".

tensor_board = TensorBoard(log_dir=''./Graph'', histogram_freq=0, write_graph=True, write_images=True)

Nota: Use "./graph". Generará la carpeta de gráficos en su directorio de trabajo actual, evite usar "/ graph".

Paso 3: Incluye la devolución de llamada de Tensorboard en "model.fit ()". El ejemplo se muestra a continuación.

model.fit(X_train,y_train, batch_size=batch_size, epochs=nb_epoch, verbose=1, validation_split=0.2,callbacks=[tensor_board])

Paso 4: Ejecute su código y verifique si su carpeta de gráficos está allí en su directorio de trabajo. si los códigos anteriores funcionan correctamente, tendrá la carpeta "Graph" en su directorio de trabajo.

Paso 5: Abra la Terminal en su directorio de trabajo y escriba el comando a continuación.

tensorboard --logdir ./Graph

Paso 6: Ahora abre tu navegador web e ingresa la dirección a continuación.

http://localhost:6006

Después de ingresar, se abrirá la página Tensorbaord donde podrá ver sus gráficos de diferentes variables.


Si está utilizando google-colab, la visualización simple del gráfico sería:

from keras.callbacks import TensorBoard from datetime import datetime logDir = "./Graph/" + datetime.now().strftime("%Y%m%d-%H%M%S") + "/" tb = TensorBoard(log_dir=logDir, histogram_freq=2, write_graph=True, write_images=True, write_grads=True)


Usted escribió log_dir=''/Graph'' ¿quiso decir ./Graph en ./Graph lugar? Lo enviaste a /home/user/Graph en este momento.


keras.callbacks.TensorBoard(log_dir=''./Graph'', histogram_freq=0, write_graph=True, write_images=True)

Esta línea crea un objeto Tablero de tensor de devolución de llamada, debe capturar ese objeto y asignarlo a la función de fit de su modelo.

tbCallBack = keras.callbacks.TensorBoard(log_dir=''./Graph'', histogram_freq=0, write_graph=True, write_images=True) ... model.fit(...inputs and parameters..., callbacks=[tbCallBack])

De esta manera, le dio su objeto de devolución de llamada a la función. Se ejecutará durante el entrenamiento y generará archivos que se pueden usar con el tensorboard.

Si desea visualizar los archivos creados durante el entrenamiento, ejecute en su terminal

tensorboard --logdir path_to_current_dir/Graph

Espero que esto ayude !