我正在尝试不同的优化器来比较性能,作为其中的一部分,我使用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
)有没有一种方法可以只获取优化器的名称,而不必解析此输出?
发布于 2021-04-22 23:51:29
查看所有优化器基类的PyTorch source code,可以清楚地看出,作为此打印语句的一部分,优化器的类名将被访问。
因此,如果在print语句中使用访问类名的相同方法,则只打印优化器的名称:
>>> print(optimizer.__class__.__name__)
Adam与日志记录的其余部分集成,日志名称包含所需信息:
writer = SummaryWriter(comment=f"_{base_model}_{optimizer.__class__.__name__}_{lr}")https://stackoverflow.com/questions/67216681
复制相似问题