Tensorflow TF 2.2上的MobileNetV2预处理不一致

Tensorflow TF 2.2上的MobileNetV2预处理不一致,tensorflow,tensorflow2.0,mobilenet,Tensorflow,Tensorflow2.0,Mobilenet,在这种情况下,预处理将图像值标准化为[0,1] 但是,根据mobilenetw2()的文档,预处理步骤将数据标准化为间隔[-1,1] 哪种预处理是正确的?为什么?如果你想从头开始训练你自己的网络,你可以应用任何你认为合适的标准化,甚至根本没有标准化,这是你的选择 相反,如果您希望重用预训练的模型(例如:通过在MobileNetV2的定义中设置weights='imagenet'),则应在中使用特定的预处理,因为此模型已使用此特定的预处理进行训练(标准化为[-1,1]) 尽管应该,但也可以将Mob

在这种情况下,预处理将图像值标准化为
[0,1]

但是,根据mobilenetw2()的文档,预处理步骤将数据标准化为间隔
[-1,1]


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

如果你想从头开始训练你自己的网络,你可以应用任何你认为合适的标准化,甚至根本没有标准化,这是你的选择

相反,如果您希望重用预训练的模型(例如:通过在
MobileNetV2
的定义中设置
weights='imagenet'
),则应在中使用特定的预处理,因为此模型已使用此特定的预处理进行训练(标准化为
[-1,1]


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

但是分段教程也使用预先训练的权重事实上,如果您训练网络,您可以使用某种范围的规范化,通常在[-3,3]之间,这是因为任何输入都比其他输入有很大的差异。如果您已经训练了网络,则必须使用与训练此网络相同的规格化。如果是这种情况,则正确的做法是将规格化设置为[-1,1]。将其设置为
[0,1]
将以“自定义”方式使用
MobilenetV2
blackbox。它仍然有用,因为您在黑盒之后正在训练一个网络,但使用标准的
预处理\u输入可能更有益。