[深度学习 - 技巧] tensorboard实时查看损失和权重的变化

本文详细介绍了如何在PyTorch环境中安装和使用TensorBoard,包括设置保存数据日志、绘制关键指标图表,并演示了如何在本地和服务器上实时查看训练进度。重点讲解了loss曲线和权重分布的可视化,以及如何通过实例分析模型性能。
摘要由CSDN通过智能技术生成

tensorboard

1. 安装tensorboard

如果有安装tensorflow的话,应该会默认安装对应版本的tensorboard。
因为我这边开发环境用的pytorch,所以没有安装tensorboard。
可以通过pip安装。
pip install tensorboard

2. 代码块

在自己的代码模块中添加这一块内容,我这里写的是每个epoch保存一次数据,当然数据量大,模型跑一个epoch慢的时候,可以自己选择n个batch保存一次。然后模型运行时候就会在目录中logs下生成一个log1目录,来保存模型训练的数据日志。

from torch.utils.tensorboard import SummaryWriter

summaryWriter = SummaryWriter("logs/log1")

for epoch in range(epochs):
    for data in data_loader:
    	# 训练代码块。
    	pass
	
	
    # 画折线图-----loss曲线
    summaryWriter.add_scalars("loss", {"total_loss": total}, iteration)
    # 画柱状图-----权重分布
    layer_weight = net.module.net.prediction_layers[0].weight
    summaryWriter.add_histogram("mask_layer_weight", mask_layer_weight, iteration)

3. 本地运行,实时查看

在命令行中进入到文件logs目录下输入:tensorboard --logdir=log1 --port=6006

logdir: 指定代码生成的那个目录。
port:指定访问的端口号,利用这个端口号可以实时查看数据的变化。

输入完如果成功运行会显示:TensorBoard 2.4.0 at http://localhost:6006/ (Press CTRL+C to quit) 就可以通过http://localhost:6006/查看数据的变化了。

4. 服务器上运行,本地实时查看(Xshell)

在Xshell属性上,SSH->隧道上添加转移,就可以在本地是查看http://localhost:6006/
监听

5. 可视化

这里我拿了我训练yolact++的log日志。
由于训练损失降得比较慢,而且到后面损失开始出现了较大幅度的震荡,所以我自己设置了多个节点让他学习率减半,可以看到学习率减半的节点处会有明显的下降趋势。

以及输出层的权重分布,权重如果是顶峰趋向越来越尖就是正常的。(损失和权重我认为是分析模型比较重要的两个点,你如果想看其他数据的变化,也可以用不同的可视化工具,具体可以查看官方的文档,还可以看网络结构图。https://tensorflow.google.cn/tensorboard/get_started

在这里插入图片描述

权重分布

  • 10
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
### 回答1: TensorBoardTensorFlow提供的一个可视化工具,可以用来查看模型的训练过程和结果。其,可以通过TensorBoard查看loss曲线。 具体操作步骤如下: 1. 在训练代码添加TensorBoard回调函数,将训练过程loss记录下来。 2. 在终端运行TensorBoard命令,启动TensorBoard服务。 3. 在浏览器打开TensorBoard的网址,查看loss曲线。 需要注意的是,TensorBoard的使用需要安装TensorFlowTensorBoard两个库,并且需要在训练代码添加相应的代码。 ### 回答2: TensorboardTensorFlow的一个非常强大的可视化工具,可用于监控模型的训练过程,包括训练状态、模型结构、指标分析和参数优化等。其查看loss曲线是Tensorboard最重要的功能之一,因为loss值是衡量模型性能的一个关键因素。 通过Tensorboard查看loss曲线可以帮助我们实时观察模型在训练过程的性能变化,从而有针对性地调整模型的参数和优化策略。 在TensorFlow,我们可以使用TensorBoardCallback将训练过程loss值写入TensorBoard,然后打开TensorBoard即可查看loss曲线。具体步骤如下: 1. 首先在TensorFlow导入TensorBoardCallback库:from tensorflow.keras.callbacks import TensorBoardCallback 2. 然后在训练模型的回调函数添加TensorBoardCallback,如下所示: tensorboard_callback = TensorBoardCallback(log_dir=log_dir, histogram_freq=1) model.fit(x_train, y_train, epochs=10, validation_data=(x_val, y_val), callbacks=[tensorboard_callback]) 其,log_dir表示TensorBoard日志的保存路径,histogram_freq表示更新直方图的频率。 3. 训练完成后,通过在终端输入以下命令启动TensorBoardtensorboard --logdir=log_dir 其,log_dir为之前指定的TensorBoard日志保存路径。 4. 打开浏览器,在地址栏输入localhost:6006,即可打开TensorBoard网页版界面。在左侧的菜单栏选择Scalar页签,即可查看loss曲线的变化。 除了查看loss曲线外,TensorBoard还提供了很多其它功能,如查看Accuracy曲线、查看模型结构、查看参数分布等。这些功能都可以帮助我们更好地了解和调试模型,以提高其性能和泛化能力。 ### 回答3: TensorBoard是谷歌开发的一个可视化工具,主要用于可视化TensorFlow的训练过程和结果。其一个重要的功能是可以实时查看模型的损失曲线。 在使用TensorFlow训练模型时,我们需要定义损失函数来评估模型的训练效果。我们希望在模型训练过程,能够可视化查看损失函数随训练次数的变化趋势,以便调整模型的超参数并保证模型的训练效果。 TensorBoard可以通过读取TensorFlow的事件文件,将损失曲线等训练结果可视化出来。使用TensorBoard查看loss曲线,首先需要在TensorFlow的训练代码添加Summary操作。Summary操作可以将训练过程损失值、准确率等训练结果写入事件文件。 在训练代码,我们可以通过如下代码定义Summary操作并将其添加到TensorFlow的默认Graph: ``` # 定义损失函数 with tf.name_scope('loss'): loss = ... # 添加Summary操作 loss_summary = tf.summary.scalar('loss_summary', loss) tf.summary.FileWriter(log_dir).add_summary(loss_summary, step) ``` 其,`log_dir`是事件文件的保存路径,`step`表示当前的训练步数。在每一步训练时,我们需要执行一次Summary操作并将其写入事件文件。 在TensorBoard查看损失曲线,我们需要在终端输入以下命令: ``` tensorboard --logdir=log_dir ``` 其,`log_dir`是上述事件文件保存的路径。然后在浏览器输入`localhost:6006`,即可打开TensorBoard界面。在TensorBoard界面,我们可以选择标签为`loss_summary`的Summary操作,并查看训练过程损失函数随训练次数的变化趋势。此外,TensorBoard还提供了诸多可视化功能,如查看模型结构、查看Embedding、查看卷积核等,方便我们更好地理解模型的训练过程。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值