1

在本分割教程中,预处理将图像值标准化为[0, 1].

但是,根据 MobileNetV2 的文档(https://www.tensorflow.org/api_docs/python/tf/keras/applications/mobilenet_v2/preprocess_input),预处理步骤将数据标准化为区间[-1, 1]

哪种预处理是正确的,为什么?

4

1 回答 1

1

如果您想从头开始训练自己的网络,您可以应用您认为合适的任何规范化,甚至根本不进行规范化,这是您的选择!

相反,如果您想重用预训练模型(例如:通过weights='imagenet'在 的定义中设置MobileNetV2),那么您应该使用https://www.tensorflow.org/api_docs/python/tf/keras/applications/中的特定预处理mobilenet_v2/preprocess_input,因为该模型已使用此特定预处理(归一化[-1, 1])进行了训练。

尽管您应该这样做,但您也可以将MobileNetV2预训练模型视为静态黑盒转换,并插入您想要的任何规范化。缺点:您几乎肯定可以通过应用标准规范化来更好地利用这个黑匣子。

于 2020-07-06T09:01:16.497 回答