python – keras BatchNormalization轴澄清
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – keras BatchNormalization轴澄清,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2077字,纯文字阅读大概需要3分钟。
内容图文
![python – keras BatchNormalization轴澄清](/upload/InfoBanner/zyjiaocheng/806/8e463258d492477a93a632400cc112e7.jpg)
keras BatchNormalization layer使用axis = -1作为默认值,并指出特征轴通常被标准化.为什么会这样?
我认为这是令人惊讶的,因为我更熟悉使用像StandardScaler这样的东西,这相当于使用axis = 0.这将单独规范化功能.
有没有理由为什么样本在keras中默认(即轴= -1)单独归一化而不是特征?
编辑:具体的例子
转换数据是很常见的,因此每个要素的均值和单位方差均为零.让我们只考虑这个模拟数据集的“零均值”部分,其中每一行都是一个样本:
>>> data = np.array([[ 1, 10, 100, 1000],
[ 2, 20, 200, 2000],
[ 3, 30, 300, 3000]])
>>> data.mean(axis=0)
array([ 2., 20., 200., 2000.])
>>> data.mean(axis=1)
array([ 277.75, 555.5 , 833.25])
减去轴= 0的意思是否更有意义,而不是轴= 1平均值?使用axis = 1,单位和比例可以完全不同.
编辑2:
假设你有一个(m,n)形状的数据集,其中m是样本数,n是功能数量.
编辑3:另一个例子
我想看看BatchNormalization在玩具数据集上计算的均值和方差的维数:
import pandas as pd
import numpy as np
from sklearn.datasets import load_iris
from keras.optimizers import Adam
from keras.models import Model
from keras.layers import BatchNormalization, Dense, Input
iris = load_iris()
X = iris.data
y = pd.get_dummies(iris.target).values
input_ = Input(shape=(4, ))
norm = BatchNormalization()(input_)
l1 = Dense(4, activation='relu')(norm)
output = Dense(3, activation='sigmoid')(l1)
model = Model(input_, output)
model.compile(Adam(0.01), 'categorical_crossentropy')
model.fit(X, y, epochs=100, batch_size=32)
bn = model.layers[1]
bn.moving_mean # <tf.Variable 'batch_normalization_1/moving_mean:0' shape=(4,) dtype=float32_ref>
输入X具有形状(150,4),并且BatchNormalization层计算4表示,这意味着它在轴= 0上操作.
如果BatchNormalization的默认值为axis = -1那么不应该有150个平均值?
解决方法:
混淆是由于np.mean中的轴与BatchNormalization中的含义有关.
当我们沿着轴取平均值时,我们会折叠该维度并保留所有其他维度.在您的示例中,data.mean(axis = 0)折叠0轴,这是数据的垂直维度.
当我们沿着轴计算BatchNormalization时,我们保留数组的尺寸,并且我们相对于每个其他轴的平均值和标准偏差进行标准化.因此,在您的2D示例中,使用axis = 1的BatchNormalization减去axis = 0的均值,正如您所期望的那样.这就是为什么bn.movi??ng_mean有形状(4,).
内容总结
以上是互联网集市为您收集整理的python – keras BatchNormalization轴澄清全部内容,希望文章能够帮你解决python – keras BatchNormalization轴澄清所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。