zerocenter归一化意味着什么?我怎么能用keras做到这一点?

问题描述 投票:0回答:2

我在MATLAB中检查了AlexNet的设计,总结如下:enter image description here

输入层用227x227x3标准化表示zerocenterzerocenter规范化是什么意思?我怎么能做这个keras?

我正在通过preprocessing documentation at keras,并不确定以下任何属性是否满足zerocenter标准化?文档中给出的属性是:

 - featurewise_center
 - samplewise_center
 - featurewise_std_normalization
 - samplewise_std_normalization
python image-processing keras computer-vision conv-neural-network
2个回答
2
投票

zerocenter imageInputLayer中已经规定了MATLAB中documentation规范化的定义:

  • 'zerocenter' - 减去AverageImage属性指定的平均图像。 trainNetwork函数自动计算训练时的平均图像。

因此,从输入图像中减去平均图像以使它们具有零均值(这有助于在模型训练期间平滑且更快的优化过程)。所以,Keras中的等价选项是featurewise_center

  • featurewise_center:布尔值。在数据集上将输入均值设置为0,具体为。

请注意,您需要调用fit()ImageDataGenerator方法来计算平均图像:

datagen = ImageDataGenerator(featurewise_center=True, ...)

datagen.fit(train_data) 

# now you can call `flow`

1
投票

零中心归一化通常意味着图像被归一化为平均值为0,标准差为1.如果您的图像是NumPy数组,则可以轻松实现:

img = (img - img.mean()) / img.std()

samplewise_centersamplewise_std_normalization做同样的事情,确保每个图像的平均值为0,标准差为1.如果你想使用数据集的mean / std,而不是samplewise mean / std,我想你应该手动完成。

© www.soinside.com 2019 - 2024. All rights reserved.