Tensorflow 使用tf.layers.batch_归一化来预处理SELU激活功能的输入?
SELU激活函数()要求对输入进行归一化,使其平均值为0.0,方差为1.0。因此,我尝试对原始数据应用Tensorflow 使用tf.layers.batch_归一化来预处理SELU激活功能的输入?,tensorflow,batch-normalization,Tensorflow,Batch Normalization,SELU激活函数()要求对输入进行归一化,使其平均值为0.0,方差为1.0。因此,我尝试对原始数据应用tf.layers.batch_normalization(axis=-1)以满足该要求。每个批次中的原始数据的形状为[批次大小,15],其中15表示特征的数量。下图显示了从tf.layers.batch\u normalization(~20个时代)返回的5个特征的方差。它们并非都像预期的那样接近1.0。平均值也并非都接近0.0(图中未显示) 我应该如何使15个特征都独立地标准化(我希望标准化
tf.layers.batch_normalization
(axis=-1
)以满足该要求。每个批次中的原始数据的形状为[批次大小,15]
,其中15表示特征的数量。下图显示了从tf.layers.batch\u normalization
(~20个时代)返回的5个特征的方差。它们并非都像预期的那样接近1.0。平均值也并非都接近0.0(图中未显示)
我应该如何使15个特征都独立地标准化(我希望标准化后的每个特征的平均值为0,var为1.0)
在阅读了batch normalization()和SELU()的原始论文后,我对它们有了更好的理解:
tf.layers.batch_normalization
时将中心
和缩放
参数设置为False
epsilon
(仍在tf.layers.batch_normalization
)设置为至少比所有输入数据的最低幅度小2个幅度。epsilon
的默认值设置为0.001。就我而言,某些功能的值低至1e-6。因此,我不得不将ε改为1e-8