gpt4 book ai didi

python - 在微调预训练模型的同时在 Keras 中预处理图像的正确方法是什么

转载 作者:太空狗 更新时间:2023-10-30 00:58:46 24 4
gpt4 key购买 nike

在为我们自己的数据微调 keras.applications 中的预训练模型的同时,在 Keras 中预处理数据的正确方法是什么?

Keras 提供了以下preprocess_input 函数

keras.applications.imagenet_utils.preprocess_input

keras.applications.inception_v3.preprocess_input

keras.applications.xception.preprocess_input

keras.applications.inception_resnet_v2.preprocess_input

从内部看,似乎对于 inception_v3、xception 和 inception_resnet_v2,它调用了 keras.applications.imagenet_utils.preprocess_input使用 mode='tf'。而对于其他模型,它设置 mode='caffe',每个模型执行不同的转换。

在 Francois chollet 关于迁移学习的博文中 -- https://blog.keras.io/building-powerful-image-classification-models-using-very-little-data.html -- 通过除以 255 将其归一化为 [0, 1]。难道不应该改用 Keras 中的 preprocess_input 函数吗?

也不清楚输入图像应该是RGB还是BGR?这是否有任何一致性,或者它是否特定于所使用的预训练模型?

最佳答案

始终使用相应模型级模块中的preprocess_input 函数。即,InceptionV3 使用 keras.applications.inception_v3.preprocess_inputResNet50 使用 keras.applications.resnet50.preprocess_input >.

mode 参数指定训练原始模型时使用的预处理方法。 mode='tf' 表示预训练的权重是从 TF 转换而来的,其中作者使用 [-1, 1] 输入范围训练模型。 mode='caffe'mode='torch' 也是如此。

applications.*.preprocess_input 的输入始终是 RGB。如果模型需要 BGR 输入, channel 将在 preprocess_input 中排列。

您提到的博文是在引入 keras.applications 模块之前发布的。我不建议将其用作使用 keras.applications 进行迁移学习的引用。尝试 docs 中的示例可能会更好相反。

关于python - 在微调预训练模型的同时在 Keras 中预处理图像的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48677128/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com