pytorch方法测试详解——归一化(BatchNorm2d)


Posted in Python onJanuary 15, 2020

测试代码:

import torch

import torch.nn as nn

m = nn.BatchNorm2d(2,affine=True) #权重w和偏重将被使用
input = torch.randn(1,2,3,4)
output = m(input)

print("输入图片:")
print(input)
print("归一化权重:")
print(m.weight)
print("归一化的偏重:")
print(m.bias)

print("归一化的输出:")
print(output)
print("输出的尺度:")
print(output.size())

# i = torch.randn(1,1,2)
print("输入的第一个维度:")
print(input[0][0])
firstDimenMean = torch.Tensor.mean(input[0][0])
firstDimenVar= torch.Tensor.var(input[0][0],False) #Bessel's Correction贝塞尔校正不会被使用

print(m.eps)
print("输入的第一个维度平均值:")
print(firstDimenMean)
print("输入的第一个维度方差:")
print(firstDimenVar)

bacthnormone = \
  ((input[0][0][0][0] - firstDimenMean)/(torch.pow(firstDimenVar+m.eps,0.5) ))\
        * m.weight[0] + m.bias[0]
print(bacthnormone)

输出为:

输入图片:

tensor([[[[-2.4308, -1.0281, -1.1322, 0.9819],
     [-0.4069, 0.7973, 1.6296, 1.6797],
     [ 0.2802, -0.8285, 2.0101, 0.1286]],


     [[-0.5740, 0.1970, -0.7209, -0.7231],
     [-0.1489, 0.4993, 0.4159, 1.4238],
     [ 0.0334, -0.6333, 0.1308, -0.2180]]]])

归一化权重:

Parameter containing:
tensor([ 0.5653, 0.0322])

归一化的偏重:

Parameter containing:
tensor([ 0., 0.])

归一化的输出:

tensor([[[[-1.1237, -0.5106, -0.5561, 0.3679],
     [-0.2391, 0.2873, 0.6510, 0.6729],
     [ 0.0612, -0.4233, 0.8173, -0.0050]],


     [[-0.0293, 0.0120, -0.0372, -0.0373],
     [-0.0066, 0.0282, 0.0237, 0.0777],
     [ 0.0032, -0.0325, 0.0084, -0.0103]]]])

输出的尺度:

torch.Size([1, 2, 3, 4])

输入的第一个维度:

tensor([[-2.4308, -1.0281, -1.1322, 0.9819],
    [-0.4069, 0.7973, 1.6296, 1.6797],
    [ 0.2802, -0.8285, 2.0101, 0.1286]])
1e-05

输入的第一个维度平均值:

tensor(0.1401)

输入的第一个维度方差:

tensor(1.6730)
tensor(-1.1237)

结论:

输出的计算公式如下

pytorch方法测试详解——归一化(BatchNorm2d)

注意torch中方差实现的方法是没有使用Bessel's correction 贝塞尔校正的方差,所以在自己写的方差中不要用错了。(贝塞尔校正,即样本方差和总体方差之间区别和校正。)

以上这篇pytorch方法测试详解——归一化(BatchNorm2d)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Django的视图中使用数据库查询的方法
Jul 16 Python
Flask入门之上传文件到服务器的方法示例
Jul 18 Python
python利用Tesseract识别验证码的方法示例
Jan 21 Python
Python3.0中普通方法、类方法和静态方法的比较
May 03 Python
Python爬虫实现验证码登录代码实例
May 10 Python
Python 循环终止语句的三种方法小结
Jun 24 Python
Django中自定义admin Xadmin的实现代码
Aug 09 Python
python模块常用用法实例详解
Oct 17 Python
如何使用python实现模拟鼠标点击
Jan 06 Python
python使用隐式循环快速求和的实现示例
Sep 11 Python
python开发一款翻译工具
Oct 10 Python
python如何在word中存储本地图片
Apr 07 Python
Python 中@property的用法详解
Jan 15 #Python
Python字符串中删除特定字符的方法
Jan 15 #Python
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
Jan 15 #Python
pytorch 图像中的数据预处理和批标准化实例
Jan 15 #Python
pytorch实现特殊的Module--Sqeuential三种写法
Jan 15 #Python
python实现删除列表中某个元素的3种方法
Jan 15 #Python
python opencv根据颜色进行目标检测的方法示例
Jan 15 #Python
You might like
PHP如何透过ODBC来存取数据库
2006/10/09 PHP
中国站长站 For Dede4.0 采集规则
2007/05/27 PHP
yii框架源码分析之创建controller代码
2011/06/28 PHP
PHP数据流应用的一个简单实例
2012/09/14 PHP
基于initPHP的框架介绍
2013/04/18 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
2018/06/16 PHP
thinkPHP框架中layer.js的封装与使用方法示例
2019/01/18 PHP
YII框架实现自定义第三方扩展操作示例
2019/04/26 PHP
laravel实现一个上传图片的接口,并建立软链接,访问图片的方法
2019/10/12 PHP
Javascript实例教程(19) 使用HoTMetal(5)
2006/12/23 Javascript
js给dropdownlist添加选项的小例子
2013/03/04 Javascript
JavaScript数组去重的五种方法
2015/11/05 Javascript
AngularJs bootstrap搭载前台框架——准备工作
2016/09/01 Javascript
js创建对象几种方式的优缺点对比
2016/09/28 Javascript
微信小程序scroll-view实现滚动穿透和阻止滚动的方法
2018/08/20 Javascript
使用imba.io框架得到比 vue 快50倍的性能基准
2019/06/17 Javascript
[52:37]完美世界DOTA2联赛循环赛 Forest vs DM BO2第一场 10.29
2020/10/29 DOTA
Selenium 模拟浏览器动态加载页面的实现方法
2018/05/16 Python
python获取地震信息 微信实时推送
2019/06/18 Python
Python读取实时数据流示例
2019/12/02 Python
Python通过两个dataframe用for循环求笛卡尔积
2020/04/29 Python
Python实现七个基本算法的实例代码
2020/10/08 Python
夏洛特和乔治婴儿和儿童时装精品店:Charlotte and George
2018/06/06 全球购物
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2014/01/19 面试题
什么是servlet
2012/05/08 面试题
高分子材料个人求职信范文
2013/09/25 职场文书
八年级历史教学反思
2014/01/10 职场文书
《小小竹排画中游》教学反思
2014/02/26 职场文书
如何写自我鉴定
2014/03/19 职场文书
委托公证书范本
2014/04/03 职场文书
检举信的格式及范文
2014/04/04 职场文书
服务承诺口号
2014/05/22 职场文书
创先争优活动党员公开承诺书
2014/08/29 职场文书
2014收银员工作总结范文
2014/12/16 职场文书
表扬通报怎么写
2015/01/16 职场文书
建筑技术负责人岗位职责
2015/04/13 职场文书