Exemplo de uso de TensorBoardIntroPasso 1: Configurar o Modelo com RMSpropPasso 2: Configurar o TensorBoardPasso 3: Treinar o Modelo e Gerar LogsPasso 4: Visualizar no TensorBoard5. Dashboards do TensorBoard1. Gráfico de Loss (MSE): Treino vs Validação2. Taxa de Aprendizado Adaptativa (RMSprop)3. Momentum (Se Habilitado no RMSprop)4. Histogramas de Pesos e GradientesExemplos de Saídas gráficas usando TensorBoardReferênciasDicas Adicionais
O TensorBoard é uma ferramenta de visualização integrada ao TensorFlow/Keras que permite monitorar métricas, pesos, gradientes e hiperparâmetros (como taxa de aprendizado e momentum) em tempo real durante o treinamento.
Abaixo, segue um exemplo completo para gerar dashboards com:
ximport tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras.optimizers import RMSprop
from tensorflow.keras.callbacks import TensorBoard
# Criar um modelo simples (regressão)
model = Sequential([
Dense(64, activation='relu', input_shape=(10,)), # Exemplo: 10 features
Dense(1) # Saída linear (MSE)
])
# Usar RMSprop com momentum (opcional)
optimizer = RMSprop(
learning_rate=0.01,
rho=0.9, # Decaimento da média móvel (equivalente ao γ do RMSprop)
momentum=0.3, # Se > 0, habilita momentum
epsilon=1e-8
)
model.compile(optimizer=optimizer, loss='mse') # MSE para regressão
xxxxxxxxxx
# Diretório para salvar logs (o TensorBoard lê deste diretório)
log_dir = "logs/fit/" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
# Callback do TensorBoard
tensorboard_callback = TensorBoard(
log_dir=log_dir,
histogram_freq=1, # Log de histogramas de pesos/gradientes (a cada época)
profile_batch=0, # Desativar profiling para evitar overhead
update_freq='epoch', # Atualizar logs a cada época
write_graph=True # Visualizar o grafo do modelo
)
# Adicionar outros callbacks se necessário (ex.: EarlyStopping)
callbacks = [tensorboard_callback]
xxxxxxxxxx
history = model.fit(
x_train, y_train,
validation_data=(x_val, y_val),
epochs=100,
batch_size=32,
callbacks=callbacks
)
Execute no terminal:
xxxxxxxxxx
tensorboard --logdir logs/fit/
Acesse http://localhost:6006/
no navegador.
Aba "Scalars":
loss
(treino) e val_loss
(validação) em tempo real. val_loss
parar de cair enquanto loss
continua diminuindo. Custom Scalar:
Para logar a taxa de aprendizado efetiva por parâmetro, adicione um callback personalizado:
xxxxxxxxxx
class LRLogger(tf.keras.callbacks.Callback):
def on_epoch_end(self, epoch, logs=None):
lr = tf.keras.backend.get_value(self.model.optimizer.learning_rate)
tf.summary.scalar('learning_rate', lr, step=epoch)
callbacks.append(LRLogger())
No TensorBoard, veja a curva em "Scalars" > "learning_rate".
Similar à taxa de aprendizado, adicione um callback para logar momentum
:
xxxxxxxxxx
class MomentumLogger(tf.keras.callbacks.Callback):
def on_epoch_end(self, epoch, logs=None):
momentum = tf.keras.backend.get_value(self.model.optimizer.momentum)
tf.summary.scalar('momentum', momentum, step=epoch)
callbacks.append(MomentumLogger())
Aba "Histograms":
histogram_freq=1
). Primeiros Passos (Get Started):
Escalares e métricas (Scalars & Keras):
Dados de imagens (Image summaries):
Grafos de modelos (Graphs):
Ajuste de Hiperparâmetros (Hyperparameters tunning):
Dados do TensorBoard como Data Frames (visualizações personalizadas):
Obs.: Imagens ilustrativas do TensorFlow Guide.
TensorFlow Guide - TensorBoard Tutorial.
Keras Documentation - RMSprop Optimizer.
TensorBoard tutorial (Deep dive with examples and notebook), Kamanda Wycliffe, Machine learning nuggets (acessado em 10/06/2025).
Edward Tensorboard, (acessado em 10/06/2025)
momentum=0
), ignore os logs de momentum. rho
no RMSprop, ele controla a adaptação da taxa de aprendizado (não é momentum). tf.summary
para logar métricas personalizadas (ex.: gradientes médios). Com isso, você eventualmente terá um dashboard completo para debug e análise do treinamento!
Itens sugeridos:
Épocas, batches e mini-batches | Keras e épocas, batches, taxas de aprendizado, etc.
Fernando Passold, em 10/06/2025