- 探究模型在不同阶段是如何输出的
简介
开发和训练深度学习模型时,你常常会遇到以下挑战:
- 训练过程不透明: 模型在“黑箱”中训练,你不知道内部发生了什么(损失下降了吗?过拟合了吗?梯度爆炸了吗?)。
- 调试困难: 当模型表现不如预期时,很难定位问题根源(是数据问题、模型架构问题、超参数问题还是代码bug?)。
- 超参数调整耗时: 手动尝试不同的学习率、批次大小、网络层数等参数并比较结果非常低效。
- 理解模型行为: 模型学到了什么?它关注输入数据的哪些部分?决策依据是什么?
- 比较模型: 当你有多个模型变体或实验时,直观地比较它们的性能很困难。
TensorBoard 就是为了解决这些问题而生的。 它通过将模型训练过程中的各种指标、数据和结构可视化,为开发者提供了一个直观的“仪表盘”,让训练过程变得透明、可解释、可调试和可优化。
使用
安装:pip install tensorboard
运行(不指定 port 的话默认 6006 端口)
tensorboard --logdir=logs --port=6007
实例
from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Image
writer = SummaryWriter("logs")
image_path = "dataset/train/ants_image/0013035.jpg"
img_PIL = Image.open(image_path)
img_array = np.array(img_PIL)
print(type(img_array))
print(img_array.shape)
writer.add_image("test",img_array,1,dataformats="HWC")
for i in range(100):
writer.add_scalar("y=2x",3*i,i)
writer.close()