首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >预测新的ImageNet图像

预测新的ImageNet图像
EN

Stack Overflow用户
提问于 2019-09-10 10:54:52
回答 1查看 58关注 0票数 0

我在预测基于ImageNet数据库的新图像时遇到了问题,在这个数据库中,物体被放置在不同的背景上。预测类在各种模型(ResNets和VGG)上工作得很好,但是对于Densenet和Inception,它根本不起作用。我想这和标签有关,但我不知道到底出了什么问题。

标签的排序从0到999 (按地图划分),顺序与原始数据集相同。

我已经更改为其他格式的标签(例如n02676566)。这对DenseNet不起作用(ResNets仍然很好)。

代码:

代码语言:javascript
复制
model = keras.applications.densenet.DenseNet201(weights='imagenet', classes=1000)

labels = [str(i) for i in range(0,1000)]

generator_imagenet = ImageDataGenerator().flow_from_directory(path, target_size(224,224), batch_size=64, class_mode='categorical', shuffle=True, classes=labels)

resnet18_model.compile(optimizer='SGD', loss='categorical_crossentropy', metrics=['acc'])

resnet18_model.evaluate_generator(generator_imagenet)

输出ResNet 152:

发现243个图像,属于1000个类。1.6771895689238245,0.5679012397189199 输出DenseNet 201: 发现243个图像,属于1000个类。15.938421453468102,0.0

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-10 12:15:46

您需要使用每个preprocess_input模型提供的preprocess_input函数对图像进行预处理。添加以下更改。

代码语言:javascript
复制
keras.applications.densenet import preprocess_input
generator_imagenet = ImageDataGenerator(preprocessing_function=preprocess_input).flow_from_directory(path, 
                                                          target_size(224,224),
                                                          batch_size=64,
                                                          class_mode='categorical', 
                                                          shuffle=True, 
                                                          classes=labels)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57869293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档