V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
kirswu
V2EX  ›  问与答

有没有大哥帮我看看一个 Python 的代码,学生党,看不出毛病

  •  
  •   kirswu · 331 天前 · 1065 次点击
    这是一个创建于 331 天前的主题,其中的信息可能已经有所发展或是发生改变。
    metriclogger 的使用
    报错 AttributeError: 'MetricLogger' object has no attribute 'loss'
    6 条回复    2023-06-10 18:14:35 +08:00
    kirswu
        1
    kirswu  
    OP
       331 天前
    不会插入图片,可以看这个链接 https://ask.csdn.net/questions/7961618
    NoOneNoBody
        2
    NoOneNoBody  
       331 天前
    print('* Acc@1 {top1.global_avg:.3f} Acc@5 {top5.global_avg:.3f} loss {losses.global_avg:.3f}'
    .format(top1=metric_logger.acc1, top5=metric_logger.acc5, losses=metric_logger.loss))

    这句,最后的 metric_logger.loss 从哪来的?
    conky
        3
    conky  
       331 天前   ❤️ 1
    这个错误是因为在 MetricLogger 类中没有定义名为"loss"的属性。在代码中使用 metric_logger.loss 时,MetricLogger 类的__getattr__方法中没有找到该属性,因此抛出该错误。


    你可以在 MetricLogger 类中添加一个 loss 属性,初始值可以为 None ,然后修改_update 方法中的代码,在更新 loss 值时也同时更新 loss 属性的值即可。


    例如,在 MetricLogger 类的构造函数中添加以下代码:



    self.loss = None


    然后在_update 方法中的代码修改如下:


    Copy
    if k == 'loss':
    self.loss = v
    self.meters[k].update(v)


    这样就可以解决这个错误了。


    ---
    来着 chatgpt
    NoOneNoBody
        4
    NoOneNoBody  
       331 天前
    切,原来好几个人答了……
    MiketsuSmasher
        5
    MiketsuSmasher  
       331 天前   ❤️ 1
    下面好几个 GPT 回答,这里还有一个,有意思吗😅
    deorth
        6
    deorth  
       331 天前 via Android
    我是学生党,请给我钱
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3821 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 04:26 · PVG 12:26 · LAX 21:26 · JFK 00:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.