【问题标题】:Does prediction / fearure extraction based on keras pretrained models depend on pre_processing_input基于keras预训练模型的预测/特征提取是否依赖preprocess_input
【发布时间】:2023-03-11 07:45:02
【问题描述】:

Keras 应用程序具有已保存权重的预训练模型。这些权重与训练过的图像上的“preprocessing_input”的性质无关。现在,当我根据我的后端和模式提交我的一组图像进行特征提取时,imagenet_utils 将 preprocessing_input 并且处理的 iamge 数组将是 在 -1 和 1 之间缩放的像素每个颜色通道ImageNet 数据集 以零为中心。 如果我按照https://keras.io/applications/ 中概述为“使用 VGG16 提取特征”的过程进行预测/特征提取,不会产生不同的结果吗????

【问题讨论】:

  • 我确实相信...而且我不确定预处理是否应该根据您的后端而改变,仅取决于您选择的模式。默认值为'caffe',来自their code。因此,我认为您应该在进行实际案例之前进行一些测试。到目前为止,我曾经认为这些模型的取值范围是 0 到 1。
  • 我很想知道哪个是正确的预处理方法。

标签: keras feature-extraction image-preprocessing


【解决方案1】:

不,权重与输入的预处理方式无关。如果使用不同的预处理方法,最终的权重会有所不同。

正如您所说,如果您使用不同的预处理,那么功能会有所不同。您应该只使用用于训练网络的预处理。

这就是为什么每个网络的 python 模块都包含一个preprocess_input 方法,您可以导入该方法来执行预处理。根据网络的训练方式和使用的预处理类型,每种方法可能会做不同的事情。

【讨论】:

  • 也许你误会了我。我不是从头开始训练模型。我正在使用带有权重='vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5'的 VGG16。我的困境是:这些权重 'vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5' 将适用于 preprocessing_input = 在 -1 和 1 之间缩放的像素每个颜色通道以零为中心,这取决于 keras.backend我可以选择的安装和模式。
  • @ShirishRanade 这不是您的问题,您还介绍了新信息,如果您使用的是 keras.applications 那么您必须使用来自同一模块的适当的 preprocess_input 方法。它不依赖于您的 keras 后端。
  • 我想我会进行一些测试,看看是否通过指定 mode='tf' 和 mode='caffe' 得到相同的结果。
猜你喜欢
  • 2019-10-05
  • 2018-04-15
  • 2018-05-03
  • 1970-01-01
  • 2018-02-22
  • 1970-01-01
  • 2017-05-29
  • 2018-07-29
  • 2017-07-16
相关资源
最近更新 更多