pytorch中的批量归一化BatchNorm1d和BatchNorm2d的用法、原理记录
1.對2d或3d數(shù)據(jù)進行批標(biāo)準(zhǔn)化(Batch Normlization)操作:
原類定義:
class torch.nn.BatchNorm1d(num_features, eps=1e-05, momentum=0.1, affine=True):參數(shù)釋義:
num_features:特征的維度 (N,L) -> L ;(N,C,L) -> C
eps:在分母上添加一個定值,不能趨近于0
momentum:動態(tài)均值和動態(tài)方差所使用的動量,這里的momentum是對均值和方差進行的滑動平均。
即 μ1 = (1 - momentum)* μ_last + momentum * μ,這里μ1為輸出值,μ_last為上一次的計算值,μ為真實計算的值
affine:布爾變量,是否為該層添加可學(xué)習(xí)的仿設(shè)變換,仿射變換的系數(shù)即為下式的gamma和beta
原理:計算各個維度均值和標(biāo)準(zhǔn)差。
2.對由3d數(shù)據(jù)組成的4d數(shù)據(jù)(N,C,X,Y)進行Batch Normlization;?
類定義:
class torch.nn.BatchNorm2d(num_features, eps=1e-05, momentum=0.1, affine=True):參數(shù)釋義:
num_features:特征的維度?(N,C,X,Y) -> C
eps:在分母上添加一個定值,不能趨近于0
momentum:動態(tài)均值和動態(tài)方差所使用的動量,原理同上
affine:布爾變量,是否為該層添加可學(xué)習(xí)的仿設(shè)變換,原理同上
原理:計算各個維度均值和標(biāo)準(zhǔn)差。
3.調(diào)用:
import torch import torch.nn as nn import torch.nn.function as Fself.batch_norm = nn.BatchNorm1d(num_features)#默認參數(shù)可以不填self.batch_norm1 = nn.BatchNorm2d(num_features) #默認參數(shù)可以不填總結(jié)
以上是生活随笔為你收集整理的pytorch中的批量归一化BatchNorm1d和BatchNorm2d的用法、原理记录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python生成随机数总结
- 下一篇: ValueError: slice in