Python day42
@浙大疏锦行 Python day42
内容:
- 回调函数,其作用是将函数作为参数传递,在外部函数调用时会调用该函数;类似于装饰器,不过更偏向于被动响应
- Hook,Pytorch的Hook机制可以在计算图的特定节点(模块或者张量)上添加一个回调函数;当执行前向传播或者反向传播时会自动触发Hook函数;Hook函数可以访问或者修改流经该节点的数据
- lambda匿名函数,定义简单,格式如下:lambda 参数列表:表达式;不需要def关键字和函数名
square = lambda x : x**2
print(square(5))
- Pytroch提供了两种Hook:Module Hooks(监听模块的输入输出)Tensor Hooks(监听张量的梯度)
- Module Hooks:register_forward_hook(),register_backward_hook()分别用于前向传播和反向传播,定义前向hook函数需要指定模型、输入以及输出;定义反向Hook函数需要指定模型、输入梯度以及输出梯度;
- Tensor Hooks:register_hook(),register_full_backward_hook()
- Grad-CAM:该算法用于解释CNN的决策过程,即通过计算特征图的梯度来生成类激活映射直观显示图像中哪些区域的贡献最大,过程为计算特征图梯度得到相应权重,针对权重加权求和,进行可视化;