我正在MATLAB中检查AlexNet的设计,总结如下:
输入层使用227x227x3
归一化表示zerocenter
。 zerocenter
规范化是什么意思?我该怎么做呢?
我正在经历preprocessing documentation at keras,不确定以下任何属性是否满足zerocenter
规范化?文档中还提供了以下属性:
- featurewise_center
- samplewise_center
- featurewise_std_normalization
- samplewise_std_normalization
答案 0 :(得分:1)
零中心归一化通常意味着将图像归一化为均值0和标准偏差1。如果您的图像是NumPy数组,则可以轻松实现:
img = (img - img.mean()) / img.std()
samplewise_center
和samplewise_std_normalization
做同样的事情,确保每个图像的均值为0,标准差为1。如果要使用数据集的均值/标准差,而不是按样本卑鄙/ std,我想您应该手动执行。
答案 1 :(得分:1)
在zerocenter
documentation中指定了MATLAB中imageInputLayer
规范化的定义:
'zerocenter'
-减去AverageImage
属性指定的平均图像。trainNetwork
函数在训练时自动计算平均图像。
因此,从输入图像中减去均值图像,使它们的均值为零(这有助于模型训练期间平滑,快速的优化过程)。因此,Keras中的等效选项为featurewise_center
:
featurewise_center
:布尔值。按功能将数据集上的输入均值设置为0。
请注意,您需要调用fit()
的{{1}}方法来计算平均图像:
ImageDataGenerator