零中心归一化是什么意思?我该如何用keras做到这一点?

时间:2019-04-23 11:55:34

标签: python image-processing keras computer-vision conv-neural-network

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

输入层使用227x227x3归一化表示zerocenterzerocenter规范化是什么意思?我该怎么做呢?

我正在经历preprocessing documentation at keras,不确定以下任何属性是否满足zerocenter规范化?文档中还提供了以下属性:

 - featurewise_center
 - samplewise_center
 - featurewise_std_normalization
 - samplewise_std_normalization

2 个答案:

答案 0 :(得分:1)

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

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

samplewise_centersamplewise_std_normalization做同样的事情,确保每个图像的均值为0,标准差为1。如果要使用数据集的均值/标准差,而不是按样本卑鄙/ std,我想您应该手动执行。

答案 1 :(得分:1)

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

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

因此,从输入图像中减去均值图像,使它们的均值为零(这有助于模型训练期间平滑,快速的优化过程)。因此,Keras中的等效选项为featurewise_center

  
      
  • featurewise_center:布尔值。按功能将数据集上的输入均值设置为0。
  •   

请注意,您需要调用fit()的{​​{1}}方法来计算平均图像:

ImageDataGenerator