Keras 预测新的ImageNet图片
我在预测基于ImageNet数据库的新图像时遇到问题,其中对象放置在不同的背景上。预测类在各种模型(resnet和VGG)上运行良好,但在Densenets和Inception中根本不起作用。我认为这与标签有关,但我不知道到底出了什么问题 标签的顺序从0到999(在地图中划分),并且与原始数据集的顺序相同 我已将标签更改为其他格式(例如n02676566)。这对DenseNet不起作用(Resnet仍然工作良好) 代码:Keras 预测新的ImageNet图片,keras,Keras,我在预测基于ImageNet数据库的新图像时遇到问题,其中对象放置在不同的背景上。预测类在各种模型(resnet和VGG)上运行良好,但在Densenets和Inception中根本不起作用。我认为这与标签有关,但我不知道到底出了什么问题 标签的顺序从0到999(在地图中划分),并且与原始数据集的顺序相同 我已将标签更改为其他格式(例如n02676566)。这对DenseNet不起作用(Resnet仍然工作良好) 代码: model = keras.applications.densenet.D
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]
您需要使用每个
keras\u应用程序
模型提供的preprocess\u input
功能对图像进行预处理。
添加以下更改
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)