pytorch中批量归一化BatchNorm1d和BatchNorm2d函数
class torch.nn.BatchNorm1d(num_features, eps=1e-05, momentum=0.1, affine=True) [source]
对小批量(mini-batch)的2d或3d输入进行批标准化(Batch Normalization)操作
在每一个小批量(mini-batch)数据中,计算输入各个维度的均值和标准差。gamma与beta是可学习的大小为C的参数向量(C为输入大小)
在训练时,该层计算每次输入的均值与方差,并进行移动平均。移动平均默认的动量值为0.1。
在验证时,训练求得的均值/方差将用于标准化验证数据。
参数:
num_features: 来自期望输入的特征数,C from an expected input of size (N,C,L) or L from input of size (N,L)
eps: 为保证数值稳定性(分母不能趋近或取0),给分母加上的值。默认为1e-5。
momentum: 动态均值和动态方差所使用的动量。默认为0.1。
affine: 一个布尔值,当设为true,给该层添加可学习的仿射变换参数。
Shape: - 输入:(N, C)或者(N, C, L) - 输出:(N, C)或者(N,C,L)(输入输出相同)
例子
m = nn.BatchNorm1d(5, affine=False)
m1 = nn.BatchNorm1d(5, affine=True)
input = autograd.Variable(torch.randn(5, 5))
output = m(input)
output1 = m1(input)
print(input, '\n',output,'\n',output1)tensor([[-0.6046, -0.8939, 1.3246, 0.2621, 1.0777],[ 0.9088, -0.6219, 0.9589, 0.7307, 0.5221],[ 1.7435, 0.6662, -0.5827, 0.3325, -0.8179],[-0.2250, 0.9930, 0.0504, -0.4509, 1.6605],[-0.5742, 1.6543, 0.6083, 0.5746, -0.3208]]) tensor([[-0.9212, -1.2920, 1.2648, -0.0680, 0.7249],[ 0.7107, -1.0117, 0.7224, 1.0842, 0.1085],[ 1.6108, 0.3161, -1.5642, 0.1049, -1.3780],[-0.5119, 0.6530, -0.6252, -1.8215, 1.3713],[-0.8885, 1.3345, 0.2022, 0.7005, -0.8266]]) tensor([[-0.9212, -1.2920, 1.2648, -0.0680, 0.7249],[ 0.7107, -1.0117, 0.7224, 1.0842, 0.1085],[ 1.6108, 0.3161, -1.5642, 0.1049, -1.3780],[-0.5119, 0.6530, -0.6252, -1.8215, 1.3713],[-0.8885, 1.3345, 0.2022, 0.7005, -0.8266]],grad_fn=<NativeBatchNormBackward>)
class torch.nn.BatchNorm2d(num_features, eps=1e-05, momentum=0.1, affine=True)[source]
对小批量(mini-batch)3d数据组成的4d输入进行批标准化(Batch Normalization)操作
在每一个小批量(mini-batch)数据中,计算输入各个维度的均值和标准差。gamma与beta是可学习的大小为C的参数向量(C为输入大小)
在训练时,该层计算每次输入的均值与方差,并进行移动平均。移动平均默认的动量值为0.1。
在验证时,训练求得的均值/方差将用于标准化验证数据。
参数:
num_features: 来自期望输入的特征数,C from an expected input of size (N,C,H,W)
eps: 为保证数值稳定性(分母不能趋近或取0),给分母加上的值。默认为1e-5。
momentum: 动态均值和动态方差所使用的动量。默认为0.1。
affine: 一个布尔值,当设为true,给该层添加可学习的仿射变换参数。
Shape: - 输入:(N, C,H, W) - 输出:(N, C, H, W)(输入输出相同)
例子
m = nn.BatchNorm2d(2, affine=False)
m1 = nn.BatchNorm2d(2, affine=True)
input = autograd.Variable(torch.randn(1,2,5, 5))
output = m(input)
output1 = m1(input)
print(input, '\n',output,'\n',output1)tensor([[[[-0.2606, -0.8874, 0.8364, 0.0184, 0.8040],[ 1.0593, -0.6811, 1.3497, -0.6840, -2.0859],[-0.5399, 1.3321, -0.6281, -0.9044, 1.7491],[ 0.7559, 0.5607, -0.0447, -0.3868, 1.2404],[ 1.2078, -0.9642, 0.3980, 0.2087, -1.3940]],[[ 0.0493, 0.7372, 1.1964, 0.3862, 0.9900],[ 0.3544, 0.1767, -1.5780, 0.1642, -2.1586],[-0.4891, -0.7272, 1.6860, -1.6091, 0.9730],[-2.4161, -2.2096, 0.4617, -0.2965, -0.5663],[-0.0222, -0.7628, 0.6404, -1.4428, 0.5750]]]]) tensor([[[[-0.3522, -0.9959, 0.7743, -0.0657, 0.7410],[ 1.0032, -0.7840, 1.3015, -0.7870, -2.2266],[-0.6390, 1.2833, -0.7296, -1.0134, 1.7116],[ 0.6917, 0.4912, -0.1305, -0.4818, 1.1892],[ 1.1557, -1.0748, 0.3242, 0.1298, -1.5161]],[[ 0.2560, 0.8743, 1.2870, 0.5588, 1.1015],[ 0.5302, 0.3705, -1.2066, 0.3593, -1.7285],[-0.2280, -0.4420, 1.7271, -1.2346, 1.0862],[-1.9599, -1.7743, 0.6266, -0.0549, -0.2974],[ 0.1917, -0.4739, 0.7873, -1.0852, 0.7285]]]]) tensor([[[[-0.3522, -0.9959, 0.7743, -0.0657, 0.7410],[ 1.0032, -0.7840, 1.3015, -0.7870, -2.2266],[-0.6390, 1.2833, -0.7296, -1.0134, 1.7116],[ 0.6917, 0.4912, -0.1305, -0.4818, 1.1892],[ 1.1557, -1.0748, 0.3242, 0.1298, -1.5161]],[[ 0.2560, 0.8743, 1.2870, 0.5588, 1.1015],[ 0.5302, 0.3705, -1.2066, 0.3593, -1.7285],[-0.2280, -0.4420, 1.7271, -1.2346, 1.0862],[-1.9599, -1.7743, 0.6266, -0.0549, -0.2974],[ 0.1917, -0.4739, 0.7873, -1.0852, 0.7285]]]],grad_fn=<NativeBatchNormBackward>)
pytorch中批量归一化BatchNorm1d和BatchNorm2d函数相关推荐
- pytorch 批量归一化BatchNorm1d和BatchNorm2d的用法、BN层参数 running_mean running_var变量计算 验证
前提知识 BN层包括mean var gamma beta四个参数,.对于图像来说(4,3,2,2),一组特征图,一个通道的特征图对应一组参数,即四个参数均为维度为通道数的一维向量,图中gamma.b ...
- pytorch中的批量归一化BatchNorm1d和BatchNorm2d的用法、原理记录
1.对2d或3d数据进行批标准化(Batch Normlization)操作: 原类定义: class torch.nn.BatchNorm1d(num_features, eps=1e-05, mo ...
- Pytorch中tensor维度和torch.max()函数中dim参数的理解
Pytorch中tensor维度和torch.max()函数中dim参数的理解 维度 参考了 https://blog.csdn.net/qq_41375609/article/details/106 ...
- python中numpy函数fft_如何在PyTorch中正确使用Numpy的FFT函数?
我最近被介绍给Pythorch,开始浏览图书馆的文档和教程. 在"使用numpy和scipy创建扩展"教程中( http://pytorch.org/tutorials/advan ...
- Pytorch中tensor.expand()和tensor.expand_as()函数
Pytorch中tensor.expand函数 Tensor.expand()函数详解 Tensor.expand_as()函数 Tensor.expand()函数详解 函数语法: # 官方解释: D ...
- python怎么批量移动文件_python中批量移动目录所有文件函数
#encoding:utf-8 import os,sys import shutil from shutil import Error from shutil import copystat fro ...
- 【Torch API】pytorch 中torch.ones_like和torch.zeros_like函数详解
torch.ones_like函数和torch.zeros_like函数的基本功能是根据给定张量,生成与其形状相同的全1张量或全0张量,示例如下: input = torch.rand(2, 3) p ...
- Pytorch中torch.unsqueeze()和torch.squeeze()函数解析
一. torch.squeeze()函数解析 1. 官网链接 torch.squeeze(),如下图所示: 2. torch.squeeze()函数解析 torch.squeeze(input, di ...
- PyTorch中 nn.Conv2d与nn.ConvTranspose2d函数的用法
原文链接 1. 通道数问题 : 描述一个像素点,如果是灰度,那么只需要一个数值来描述它,就是单通道.如果有RGB三种颜色来描述它,就是三通道.最初输入的图片样本的 channels ,取决于图片类型: ...
最新文章
- 技术 | 入门机器学习必须知道的6件事,你可未必都了然于心了
- Flask之请求钩子
- 关闭防火墙命令 500 OOPS: cannot change directory:
- LeetCode 13. Roman to Integer
- 前端学习(3046):vue+element今日头条管理-页面布局和面包屑筛选
- js如何获取计算机当前时间,js获取当前系统时间
- Kotlin 学习笔记08
- 如何用算法预测世界杯?
- LabVIEW两种方法实现Excel数据(含汉字)读取
- 「津津乐道播客」#342 编码人声:跟「老」程序员们聊聊编程的历史与未来
- 内核tty框架_串口_tty_shell的关系
- ElasticSearch中的分片(shards)是什么
- 购物车的制作 与注册表单验证
- DVB数字电视系统简介(DVB-C,DVB-S,DVB-T)
- 初始化mysql报错
- Calcite CBO 分析1
- 联合概率数据互联(JPDA) ----多假设跟踪(MHT)
- 到底怎么买保险?附保险配置实战
- 基于Seq2Seq的GRU时间序列预测Python程序
- 嫦娥探月数据公布:高清真彩色月面图像首公开