在本分割教程中,预处理将图像值标准化为[0, 1]
.
但是,根据 MobileNetV2 的文档(https://www.tensorflow.org/api_docs/python/tf/keras/applications/mobilenet_v2/preprocess_input),预处理步骤将数据标准化为区间[-1, 1]
。
哪种预处理是正确的,为什么?
在本分割教程中,预处理将图像值标准化为[0, 1]
.
但是,根据 MobileNetV2 的文档(https://www.tensorflow.org/api_docs/python/tf/keras/applications/mobilenet_v2/preprocess_input),预处理步骤将数据标准化为区间[-1, 1]
。
哪种预处理是正确的,为什么?
如果您想从头开始训练自己的网络,您可以应用您认为合适的任何规范化,甚至根本不进行规范化,这是您的选择!
相反,如果您想重用预训练模型(例如:通过weights='imagenet'
在 的定义中设置MobileNetV2
),那么您应该使用https://www.tensorflow.org/api_docs/python/tf/keras/applications/中的特定预处理mobilenet_v2/preprocess_input,因为该模型已使用此特定预处理(归一化[-1, 1]
)进行了训练。
尽管您应该这样做,但您也可以将MobileNetV2
预训练模型视为静态黑盒转换,并插入您想要的任何规范化。缺点:您几乎肯定可以通过应用标准规范化来更好地利用这个黑匣子。