Pytorch框架学习—(5)调整学习率、可视化操作
本节简单总结Pytorch中用于学习率调整的函数,如何使用tensorboard可视化曲线、梯度、权重、特征图、卷积核,以及如何使用torchvision.utils.make_grid()制作网格图。【文中思维导图采用MindMaster软件】
目录
1.学习率的调整
2.tensorboard可视化工具
(1)流程
(2)如何记录可视化的数据?
①scalar绘制曲线(单条、多条)
②histogram直方图,查看权重、梯度,判断是否梯度消失或发散
③记录图像(利用torchvision.utils中make_grid制作网格)
④利用make_grid可视化特征图
⑤graph可视化模型计算图
1.学习率的调整
Pytorch中封装了调整LR的函数,如下:
它们都继承父类class _LRScheduler,需要复写函数def get_lr(self),该函数用于计算学习率并返回:
class _LRScheduler(object):
def __init__(self, optimizer, last_epoch=-1):
······
def get_lr(self):
raise NotImplementedError
参数:
optimizer:优化器类实例
last_epoch:记录epoch数
base_lrs:记录初始学习率,该参数用于后续的学习率计算
方法:
step():更新下一个epoch的学习率
get_lr():虚函数,计算下一个epoch学习率
节省精力, 由于网上已经有人对这六个函数总结的很好,故在此引用,不再复写。
2.tensorboard可视化工具
(1)流程
(2)如何记录可视化的数据?
调用SummaryWriter类,代码如下:
'''SummaryWriter类'''
class SummaryWriter(object):
def __init__(self, log_dir=None, comment='', purge_step=