tqdm在pytorch中的使用

tqdm库的主要作用是可视化当前网络训练的进程,下载方式为在终端中输入:

pip install tqdm

考虑下面一个常见的训练过程:

    for epoch in range(num_epochs):
        ## 对训练数据的迭代器进行迭代计算
        for step, (b_x1, b_y) in enumerate(train_loader):
            b_x1 = b_x1.cuda()
            b_y = b_y.cuda()
            output = mlp1(b_x1).flatten()  # MLP在训练batch上的输出
            output = output.cuda()
            train_loss = loss_func(output, b_y)  # 平方根误差
            optimizer.zero_grad()  # 每个迭代步的梯度初始化为0
            train_loss.backward()  # 损失的后向传播,计算梯度
            optimizer.step()  # 使用梯度进行优化
            train_loss_one += train_loss.item() * b_x1.size(0)
            train_num += b_x1.size(0)
            train_loss_all.append(train_loss.item())
     train_loss_all.append(train_loss_one / train_num)

我们希望在训练过程能看到训练的进度,例如当前的epoch是多少,loss是多少等等,可以按照下方的方式进行改进:

    for epoch in range(num_epochs):
        loop = tqdm(enumerate(train_loader), total=len(train_loader))
        ## 对训练数据的迭代器进行迭代计算
        for step, (b_x1, b_y) in loop:
            b_x1 = b_x1.cuda()
            b_y = b_y.cuda()
            output = mlp1(b_x1).flatten()  # MLP在训练batch上的输出
            output = output.cuda()
            train_loss = loss_func(output, b_y)  # 平方根误差
            optimizer.zero_grad()  # 每个迭代步的梯度初始化为0
            train_loss.backward()  # 损失的后向传播,计算梯度
            optimizer.step()  # 使用梯度进行优化
            train_loss_one += train_loss.item() * b_x1.size(0)
            train_num += b_x1.size(0)
            train_loss_all.append(train_loss.item())
            loop.set_description(f'Epoch [{epoch}/{num_epochs}]')
            loop.set_postfix(loss=train_loss_one / train_num)

首先是创建一个loop,目的是在后面for循环时能通过tqdm去调用,再通过set_description与set_postfix设置其他信息。

效果:

 

  • 7
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值