【问题标题】:How can I get the name of a chosen optimizer in PyTorch?如何在 PyTorch 中获取所选优化器的名称?
【发布时间】:2021-07-16 21:04:41
【问题描述】:

我正在尝试不同的优化器来比较性能,作为其中的一部分,我正在使用 TensorBoard 记录结果。

我已设置 SummaryWriter 输出以包含所用模型和学习率等详细信息。

writer = SummaryWriter(comment=f"_{base_model}_{lr}")

我希望它也动态包含优化器的名称,但似乎没有内置方法来获取所选优化器的名称。

打印优化器确实会返回其名称。但是,它与参数信息捆绑在一起,因此不适合记录。

>>> print(optimizer)

Adam (
Parameter Group 0
    amsgrad: False
    betas: (0.9, 0.999)
    eps: 1e-08
    lr: 0.001
    weight_decay: 0
)

有没有一种方法可以只获取优化器的名称而无需解析此输出?

【问题讨论】:

    标签: pytorch tensorboard


    【解决方案1】:

    查看所有优化器基类的 PyTorch source code,很明显,作为此打印语句的一部分,将访问优化器的类名。

    因此,如果在 print 语句中使用相同的访问类名的方法,则只打印优化器的名称:

    >>> print(optimizer.__class__.__name__)
    
    Adam
    

    与日志的其余部分集成,日志名称包含所需的信息:

    writer = SummaryWriter(comment=f"_{base_model}_{optimizer.__class__.__name__}_{lr}")
    

    【讨论】:

      猜你喜欢
      • 2013-01-17
      • 1970-01-01
      • 2020-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-20
      • 2018-07-30
      • 2011-09-24
      相关资源
      最近更新 更多