utils.Averagemeter()de的用法

在训练时我看到有人会添加AverageMeter()的epoch_loss,

一般放在utils.py中,源码如下

rom __future__ import division, absolute_import

__all__ = ['AverageMeter']


class AverageMeter(object):
    """Computes and stores the average and current value.

    Examples::
        >>> # Initialize a meter to record loss
        >>> losses = AverageMeter()
        >>> # Update meter after every minibatch update
        >>> losses.update(loss_value, batch_size)
    """

    def __init__(self):
        self.reset()

    def reset(self):
        self.val = 0
        self.avg = 0
        self.sum = 0
        self.count = 0

    def update(self, val, n=1):
        self.val = val
        self.sum += val * n
        self.count += n
        self.avg = self.sum / self.count

在pytorch中用utils包来更新得分、损失等等。
代码说的例子是输入有两个参数,一个是用来处理的数值,比如损失等等,另一个是批量大小。
比如损失,假设批次为32,那么每个batch_size更新一次。

代码解释说明:

losses = AverageMeter()
loss_list = [0.5,0.4,0.5,0.6,1]
batch_size = 2
for los in loss_list:
    losses.update(los,batch_size)
    print(losses.avg)

本质上还是对所有batch_size的损失取平均。方便训练时输出每个batch的loss。
参考链接:https://blog.csdn.net/qq_39783265/article/details/105398427

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值