如何快速开始使用TensorBoard
安装TensorBoard
确保已安装TensorFlow或PyTorch(两者均支持TensorBoard)。使用pip安装TensorBoard:
pip install tensorboard
若使用PyTorch,需额外安装torch.utils.tensorboard
:
pip install torch-tb-profiler
集成到代码中
TensorFlow示例:
import tensorflow as tf
# 定义模型和日志目录
log_dir = "logs/fit"
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1)
# 在model.fit中调用
model.fit(x_train, y_train, epochs=5, callbacks=[tensorboard_callback])
PyTorch示例:
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter("runs/experiment_1")
# 记录标量数据(如损失)
writer.add_scalar("Loss/train", loss.item(), epoch)
writer.close()
启动TensorBoard
在终端运行以下命令,指定日志目录:
tensorboard --logdir=logs/fit # TensorFlow示例路径
# 或
tensorboard --logdir=runs # PyTorch示例路径
默认访问地址为 http://localhost:6006
。
查看可视化数据
- 标量图表:监控损失、准确率等指标。
- 计算图:展示模型结构(需在代码中显式保存)。
- 直方图:显示权重/梯度分布(需设置
histogram_freq
)。 - 投影器:可视化高维数据(如嵌入向量)。
高级功能
- 超参数调优:使用
hparams
插件记录超参数组合。 - 性能分析:PyTorch需配合
torch.profiler
生成性能报告。 - 自定义仪表盘:通过标签分组指标,筛选关键结果。
注意:若无法访问6006端口,可通过--port
参数修改(如--port 6007
)。
使用mnist的例子进行TensorBoard例子
建立模型
mnist = tf.keras.datasets.mnist
(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
def create_model():
return tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(512, activation='relu'),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10, activation='softmax')
])
项目的目录需要建立一个logs/fit目录,手工建立即可。model训练时候,会有回调callBacks=[tensortboard_callback]将日志按照时间搓的写入到文件夹中的文件中。
model = create_model()
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
log_dir = "logs/fit/" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1)
model.fit(x=x_train,
y=y_train,
epochs=5,
validation_data=(x_test, y_test),
callbacks=[tensorboard_callback])
运行记录截取部分。生成的目录文件夹截取