繁体   English   中英

Image_classification 使用 resnet50 模型和 imagenet db 和我的自定义标签

[英]Image_classification using resnet50 model with imagenet db with my custom labels

我正在研究 image_classification 问题(多类)。 我正在使用 resnet50 模型( https://keras.io/applications/#classify-imagenet-classes-with-resnet50 )以及使用 keras 的预训练数据库“imagenet”

我正在获取我传递给模型的图像的输出标签。

但是现在,我有我自己的数据集的图像数据和标签数据。

当我将图像传递给 resnet50 模型时,它会返回已经训练过的 imagenet 标签。 现在,在这里,我希望输出作为我自己的标签,它已经在数据集中而不是获取 imagenet 标签。

如何使用 keras 中的 imagenet db 微调 resnet50 模型中的标签

我单独尝试了 resnet50 模型,它工作正常。 但是,如何将输出更改为我自己的标签而不是 imagenet 预训练标签。


from keras.applications.resnet50 import ResNet50
from keras.preprocessing import image
from keras.applications.resnet50 import preprocess_input, decode_predictions
import numpy as np
import os

model = ResNet50(weights='imagenet')

path='/Users/resnet-sample/'

img_path=os.listdir(path)
count=0
for i in img_path:
    img = image.load_img(path+i, target_size=(224, 224))
    x = image.img_to_array(img)
    x = np.expand_dims(x, axis=0)
    x = preprocess_input(x)

    preds = model.predict(x)
    print('Predicted:', decode_predictions(preds, top=1)[0], i)
    count=count+1
print(preds)

例子:

我有一个 jpg 格式的大象图像,并在我的数据集中将其标记为“大象”。

当我将此图像传递给使用 imagenet 预训练数据库的 resnet50 模型时,我收到的输出是“African-Elephant”(imagenet-label)。

因此,我不想将 imagenet 标签作为输出,而是将其调整为“大象”作为我数据集中的标签。

因此,不确定如何微调将输出作为我的标签而不是 imagenet 标签的最后一层。

Pelase 帮我解决这个问题。

谢谢,

Srknt73

weights参数应该是None (随机初始化)、 imagenet (在 ImageNet 上预训练)或要加载的权重文件的路径。 因此,您提供包含数据集标签的文件的路径

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM