炼丹小技巧1:通过TensorBoard查看loss走向判断模型是否收敛

1.目的

我们在训练模型的时候,不知道自己的超参数epochs设置的是够正确,能否训练出一个足够好的模型?
通过参看loss的走向,如果loss稳定在较低值附近,就可以判断该模型已经收敛。
可以通过plt.show自己绘制loss的走向图,当然也可以通过TensorBoard绘制loss的走向图,更加高大上。
TensorBoard绘图简单原理如下:1.将要绘制的数据保存为一个文件 2.用tensorboard命令读取文件并绘制图形

2.步骤

安装

pip install tensorboard

训练模型代码中保存loss值

from torch.utils.tensorboard import SummaryWriter

writer = SummaryWriter("logs")  # 写入文件存放的位置
for i in range(100):
    writer.add_scalar("y=2*x", 2 * i, i)  #  "y=2*x"为图片描述,2 * i 为纵坐标, i为step(横坐标)
writer.close()  

启动TensorBoard

tensorboard --logdir=logs

–logdir :读取文件所在的文件夹

3.举例

import torch
from torch.utils.tensorboard import SummaryWriter
x_data = torch.Tensor([[1.0], [2.0], [3.0]])
y_data = torch.Tensor([[2.0], [4.0], [6.0]])
# 终端中输入 tensorboard --logdir=./logs 启动tensorboard读取logs下文件,进行绘制
# epochs = 100  # 设置为100时模型还没有收敛
epochs = 1000


class LinearModel(torch.nn.Module):
    def __init__(self):
        super(LinearModel, self).__init__()
        self.linear = torch.nn.Linear(1, 1)

    def forward(self, x):
        y_pred = self.linear(x)
        return y_pred


model = LinearModel()
loss = torch.nn.MSELoss(reduction='mean')
opmizier = torch.optim.SGD(model.parameters(), lr=0.001)
writer = SummaryWriter("logs")
for epoch in range(epochs):
    y_pred = model(x_data)
    l = loss(y_pred, y_data)
    print(l.item())
    writer.add_scalar('loss', l.item(), epoch)  # 使用tensorboard
    l.backward()
    opmizier.step()
    opmizier.zero_grad()

writer.close()
print("w:", model.linear.weight.item())
print("b:", model.linear.bias.item())

x_test = torch.tensor([4.0])
y_test = model(x_test)
print("y_pred:", y_test.item())


3.1 epochs设置过小

模型未收敛

3.2 epochs设置合理

模型收敛

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要使用TensorBoard查看loss,首先需要将训练过程中的loss值保存为一个文件。可以使用第三个引用中的代码示例来保存loss值。首先,导入`SummaryWriter`类并创建一个`SummaryWriter`对象,指定文件保存的位置。然后,在每个训练步骤中,使用`add_scalar`方法将loss值写入文件中。其中,第一个参数是图片的描述,可以是"loss"或者其他你想要的描述;第二个参数是loss值;第三个参数是训练步骤的索引。最后,使用`close`方法关闭`SummaryWriter`对象。这样,loss值就会被保存到指定的文件中。 接下来,打开终端,使用`tensorboard`命令读取文件并绘制图形。确保你已经激活了TensorFlow环境。在命令行中输入`tensorboard --logdir=logs`,其中`--logdir`参数后面跟着保存loss值文件的目录。然后,按下回车键启动TensorBoard。 在浏览器中输入`http://localhost:6006`,就可以访问TensorBoard的界面。在界面中,选择`Scalars`选项卡,就可以看到绘制的loss走向图。 通过这种方法,你可以使用TensorBoard查看loss的变化情况,从而判断模型是否收敛。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [炼丹技巧1:通过TensorBoard查看loss走向判断模型是否收敛](https://blog.csdn.net/qq_44850917/article/details/128493556)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [使用Tensorboard工具查看Loss损失率](https://download.csdn.net/download/weixin_38593701/13738503)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值