如何在PyTorch中获得所选优化器的名称?

如何在PyTorch中获得所选优化器的名称?,pytorch,tensorboard,Pytorch,Tensorboard,我正在尝试不同的优化器来比较性能,作为其中的一部分,我正在使用TensorBoard记录结果 我已设置SummaryWriter输出,以包括所用模型和学习率等细节 writer = SummaryWriter(comment=f"_{base_model}_{lr}") 我希望它还动态地包含优化器的名称,但是似乎没有一种内置的方法来获取所选优化器的名称 打印优化器会返回其名称。但是,它与参数信息捆绑在一起,因此不适合用于日志记录 >>> print(opt

我正在尝试不同的优化器来比较性能,作为其中的一部分,我正在使用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,很明显,作为print语句的一部分,可以访问优化器的类名

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

>>> print(optimizer.__class__.__name__)

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

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