可视化pytorch 模型中不同BN层的running mean曲线实例


Posted in Python onJune 24, 2020

加载模型字典

逐一判断每一层,如果该层是bn 的 running mean,就取出参数并取平均作为该层的代表

对保存的每个BN层的数值进行曲线可视化

from functools import partial
import pickle
import torch
import matplotlib.pyplot as plt

pth_path = 'checkpoint.pth'

pickle.load = partial(pickle.load, encoding="latin1")
pickle.Unpickler = partial(pickle.Unpickler, encoding="latin1")
pretrained_dict = torch.load(pth_path, map_location=lambda storage, loc: storage, pickle_module=pickle)
pretrained_dict = pretrained_dict['state_dict']

means = []
for name, param in pretrained_dict.items():
 print(name)
 if 'running_mean' in name:
  means.append(mean.numpy())

layers = [i for i in range(len(means))]

plt.plot(layers, means, color='blue')
plt.legend()
plt.xticks(layers)
plt.xlabel('layers')
plt.show()

可视化pytorch 模型中不同BN层的running mean曲线实例

补充知识:关于pytorch中BN层(具体实现)的一些小细节

最近在做目标检测,需要把训好的模型放到嵌入式设备上跑前向,因此得把各种层的实现都用C手撸一遍,,,此为背景。

其他层没什么好说的,但是BN层这有个小坑。pytorch在打印网络参数的时候,只打出weight和bias这两个参数。咦,说好的BN层有四个参数running_mean、running_var 、gamma 、beta的呢?一开始我以为是pytorch把BN层的计算简化成weight * X + bias,但马上反应过来应该没这么简单,因为pytorch中只有可学习的参数才称为parameter。上网找了一些资料但都没有说到这么细的,毕竟大部分用户使用时只要模型能跑起来就行了,,,于是开始看BN层有哪些属性,果然发现了熟悉的running_mean和running_var,原来pytorch的BN层实现并没有不同。这里吐个槽:为啥要把gamma和beta改叫weight、bias啊,很有迷惑性的好不好,,,

扯了这么多,干脆捋一遍pytorch里BN层的具体实现过程,帮自己理清思路,也可以给大家提供参考。再吐槽一下,在网上搜“pytorch bn层”出来的全是关于这一层怎么用的、初始化时要输入哪些参数,没找到一个pytorch中BN层是怎么实现的,,,

众所周知,BN层的输出Y与输入X之间的关系是:Y = (X - running_mean) / sqrt(running_var + eps) * gamma + beta,此不赘言。其中gamma、beta为可学习参数(在pytorch中分别改叫weight和bias),训练时通过反向传播更新;而running_mean、running_var则是在前向时先由X计算出mean和var,再由mean和var以动量momentum来更新running_mean和running_var。所以在训练阶段,running_mean和running_var在每次前向时更新一次;在测试阶段,则通过net.eval()固定该BN层的running_mean和running_var,此时这两个值即为训练阶段最后一次前向时确定的值,并在整个测试阶段保持不变。

以上这篇可视化pytorch 模型中不同BN层的running mean曲线实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
下载糗事百科的内容_python版
Dec 07 Python
tensorflow 1.0用CNN进行图像分类
Apr 15 Python
python中验证码连通域分割的方法详解
Jun 04 Python
python中的tcp示例详解
Dec 09 Python
python用插值法绘制平滑曲线
Feb 19 Python
python之信息加密题目详解
Jun 26 Python
Python读取xlsx文件的实现方法
Jul 04 Python
django中间键重定向实例方法
Nov 10 Python
Python for循环与getitem的关系详解
Jan 02 Python
用python按照图像灰度值统计并筛选图片的操作(PIL,shutil,os)
Jun 04 Python
win10下python3.8的PIL库安装过程
Jun 08 Python
python 自动化偷懒的四个实用操作
Apr 11 Python
python3.x中安装web.py步骤方法
Jun 23 #Python
python如何删除文件、目录
Jun 23 #Python
TensorFlow保存TensorBoard图像操作
Jun 23 #Python
python和js交互调用的方法
Jun 23 #Python
virtualenv介绍及简明教程
Jun 23 #Python
python不同系统中打开方法
Jun 23 #Python
自学python用什么系统好
Jun 23 #Python
You might like
浅谈PHP中foreach/in_array的使用
2015/11/02 PHP
PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法
2016/05/13 PHP
CI框架简单分页类用法示例
2020/06/06 PHP
JavaScript之appendChild、insertBefore和insertAfter使用说明
2010/12/30 Javascript
javascript判断机器是否联网的2种方法
2013/08/09 Javascript
jQuery+HTML5加入购物车代码分享
2020/10/29 Javascript
jquery自定义右键菜单、全选、不连续选择
2016/03/01 Javascript
非常漂亮的相册集 使用jquery制作相册集
2016/04/28 Javascript
JS阻止事件冒泡行为和闭包的方法
2016/06/16 Javascript
JS如何设置iOS中微信浏览器的title
2016/11/22 Javascript
详解angularJs中自定义directive的数据交互
2017/01/13 Javascript
vue.js实现请求数据的方法示例
2017/02/07 Javascript
Node.js创建HTTP文件服务器的使用示例
2018/05/11 Javascript
koa2 用户注册、登录校验与加盐加密的实现方法
2019/07/22 Javascript
浅谈Vue项目骨架屏注入实践
2019/08/05 Javascript
react中Suspense的使用详解
2019/09/01 Javascript
layui的表单提交以及验证和修改弹框的实例
2019/09/09 Javascript
vue.js购物车添加商品组件的方法
2019/09/17 Javascript
在vue中高德地图引入和轨迹的绘制的实现
2019/10/11 Javascript
angular异步验证防抖踩坑实录
2019/12/01 Javascript
javascript实现贪吃蛇游戏(娱乐版)
2020/08/17 Javascript
vue使用Sass时报错问题的解决方法
2020/10/14 Javascript
vue3.0 的 Composition API 的使用示例
2020/10/26 Javascript
python之import机制详解
2014/07/03 Python
深入理解NumPy简明教程---数组1
2016/12/17 Python
python实现外卖信息管理系统
2018/01/11 Python
Django中redis的使用方法(包括安装、配置、启动)
2018/02/21 Python
Python中format()格式输出全解
2019/04/12 Python
python基于递归解决背包问题详解
2019/07/03 Python
Python PyQt5 Pycharm 环境搭建及配置详解(图文教程)
2019/07/16 Python
基于python实现matlab filter函数过程详解
2020/06/08 Python
中国汽车租赁行业头部企业:一嗨租车
2019/05/16 全球购物
英国家具、照明、家居用品网上商店:Wayfair.co.uk
2020/02/13 全球购物
环境工程毕业生自荐信
2013/11/17 职场文书
个人年度总结报告
2015/03/09 职场文书
护士心得体会范文
2016/01/25 职场文书