keras 寻找在ResNet50模型中显示图像类别名称的方法

gzszwxb4  于 2023-03-08  发布在  其他
关注(0)|答案(1)|浏览(124)

我试着处理自然图像处理分类图像成三个不同的类别[airplane, car, motorcycle]。如下所示。

single_image = load_images('sample_data/')  ## Load airplane image into array of arrays
single_image = resize_images(single_image, inp_img_width,inp_img_height)  ## Resize the image to the predefined size

le.classes_ 
#which shows answer as "array(['airplane', 'car', 'motorbike'], dtype=object)"

我使用keras.utils.normalize将图像转换为每个类别中浮点数数组

single_image_norm = tf.keras.utils.normalize(np.asfarray(single_image))

当我实现我的模型时,它成功地显示了飞机图像的正确类别。

model(single_image_norm)
#which shows answer as "<tf.Tensor: shape=(1, 5), dtype=float32, numpy=array([[1., 0., 0., 0., 0.]], dtype=float32)>"

但是在这里,我不仅要显示类别的数组,还要显示类别的名称。例如飞机图像将是,

model(singe_image_norm)
#which answers "airplane"

有人能帮我吗?我应该添加/使用什么代码?希望能被理解,对不起,我的英语不好。

thtygnil

thtygnil1#

你可以创建一个字典,将索引Map到它对应的标签,如下所示:

labels_map = {0:'airplane', 1:'car', 2:'motorbike'}

你可以用np.argmax来得到这个类的索引,

idx = np.argmax(prediction, axis=-1)

然后,您可以将此idx传递给字典,您将获得预测的标签文本,

text = labels_map.get(idx)

相关问题