TensorBoard 是PyTorch和TensorFlow都支持的可视化工具,用于追踪和展示训练过程中各种指标,比如:
- 损失曲线(Loss)
- 奖励变化(Reward)
- 学习率(Learning Rate)
- 模型权重(Weights & Gradients)
- 网络结构(Graph)
- 训练时的图像、直方图等(Images, Histograms)
在PyTorch中,SummaryWriter 是TensorBoard的接口,用于把数据写入到TensorBoard可读取的日志文件中。
SummaryWriter 会把训练信息记录到磁盘,然后用tensorboard命令可视化。
from torch.utils.tensorboard import SummaryWriter
# 创建 TensorBoard 记录器
writer = SummaryWriter(log_dir='runs/time_{}'.format(args.date_time))SummaryWriter(log_dir=...)
- 作用:创建一个TensorBoard记录器
log_dir='runs/time_{}':runs/是TensorBoard记录日志的目录。'time_{}'可能是训练时间戳,用args.date_time来区分不同的训练任务。
- 记录训练损失
for step in range(1000):
loss = some_loss_function()
writer.add_scalar('Loss/train', loss, step) # 记录 loss 到 TensorBoardTensorBoard 里会显示 Loss/train 这一项的变化曲线。
- 记录奖励
writer.add_scalar('Reward/episode', episode_reward, episode_number)- 记录神经网络的权重直方图
for name, param in model.named_parameters():
writer.add_histogram(name, param, epoch)当训练代码运行后,会生成 runs/ 目录下的日志文件,之后可以用以下命令启动TensorBoard:
tensorboard --logdir=runs然后在浏览器打开 http://localhost:6006,就能看到各种可视化曲线。
TensorBoard是一个可视化工具,用来监控强化学习训练过程。SummaryWriter是PyTorch提供的 API,用来写入日志数据。- 你可以用它来记录loss、reward、网络参数等,然后用
tensorboard命令查看。
这东西在强化学习中非常有用,特别是调试和对比不同超参数的影响时!