MobileNets用于自定义图像大小

问题描述 投票:1回答:2

我想使用在ImageNet上预训练的MobileNet模型进行特征提取。我正在加载模型如下:

from keras.applications.mobilenet import MobileNet

feature_model = MobileNet(include_top=False, weights='imagenet', input_shape=(200, 200, 3))

Keras手册clearly says表示此输入形状有效:

input_shape:可选的形状元组,仅在include_top为False时指定(否则输入形状必须为(224,224,3)(带有'channels_last'数据格式)或(3,224,224)(带'channels_first')数据格式)。它应该有3个输入通道,宽度和高度不应小于32.例如(200,200,3)将是一个有效值。

但是,我收到以下错误消息:

ValueError:如果正在加载imagenet权重,则输入必须具有静态方形((128,128),(160,160),(192,192)或(224,224)之一)。提供的输入形状=(200,200,3)

如果我指定include_top=False,为什么它需要输入形状与它训练的那个相匹配?

硬:2.2.4,TensorFlow:1.13.1

更新:正如@Soroush所指出的,这个例外被删除了recently。然而,正如here所描述的那样,问题没有完全解决。

Update2:这两个拉取请求解决了问题(12)。

python tensorflow keras deep-learning
2个回答
1
投票

这个例外是错误的,最近(2019年3月29日)从Keras中删除(参见GitHub上的issuepull request)。截至2019年4月8日,此提交尚未发布,因此您必须从master安装。


2
投票

要在MobileNet中使用自定义图像大小,请从以下链接下载权重:qazxsw poi

但是根据https://github.com/fchollet/deep-learning-models/releases/tag/v0.6的研究论文,确保你需要哪些权重,因为它包含不同的权重文件,因为每个模型都依赖于参数MobileNetalphadepth_multiplier有四个不同的值:0.25,0.50,0.75,1.0。此外,根据alpha的实施,depth_multiplier是1。我建议你下载mobilenet。根据mobilenet_1_0_224_tf.h5,它具有最高的ImageNet准确度。

之后,

research paper Table 7

你很高兴去。

© www.soinside.com 2019 - 2024. All rights reserved.