【问题标题】:How can I test my own image on my CNN model?如何在我的 CNN 模型上测试我自己的图像?
【发布时间】:2021-12-25 13:33:39
【问题描述】:

我是一名初级程序员,尝试使用 CNN 进行图像分类。我的目标是建立一个模型来分类图像是否是铝罐,我想用我自己的图像进行测试。

我已经用下面的代码调整了图像的大小:

#将大小调整为 128,128
files = os.listdir("../input/aluminum-can-image-data/Aluminum Cans")

对于文件中的 f: img = Image.open("../input/aluminum-can-image-data/Aluminum Cans/" + f) img = img.resize((128,128))

ds_train_ = image_dataset_from_directory( '../输入/铝罐图像数据', 标签='推断', image_size=[128, 128], 插值='最近的', 批量大小=64, ) ds_valid_ = image_dataset_from_directory( '../输入/铝罐图像数据', 标签='推断', image_size=[128, 128], 插值='最近的', 批量大小=64, )

ds_train, ds_valid = train_test_split(files, test_size=0.2, random_state=1)

我想构建一个代码,用于显示在接收到单个图像时图像是铝罐的可能性百分比。任何有关构建此功能的代码的帮助将不胜感激~!

【问题讨论】:

  • 欢迎来到 Stack Overflow _ 请编辑您的帖子并将您问题中的所有代码放在帖子编辑器中提供的代码块功能中。您可以通过突出显示代码然后单击编辑器上方的{ } 标记轻松完成此操作

标签: conv-neural-network artificial-intelligence data-science


【解决方案1】:

假设您使用的模型名为“model”,并且您有 2 个输出标签 -“Aluminium”、“Not Aluminium”。

由于您只需要预测单个图像,因此您必须使用 np.expandims(image,axis=0) 来增加输入的维度,以便模型工作。

代码:

class=["alum","not_alum"]

prediction=model.predict(np.expand_dims(image,axis=0))

confidence=round(100 * (np.max(prediction[0]),2)

argclass=np.argmax(prediction,axis=1)

print(class[argclass[0])

print(confidence).

【讨论】:

  • 感谢您的回答!好吧,我还想问一件事……我的模型是回归模型,所以我希望结果是百分比的形式(例如,铝罐的可能性为 80%)你能帮我解决这个问题吗
猜你喜欢
  • 1970-01-01
  • 2019-06-13
  • 2015-06-21
  • 2021-04-08
  • 1970-01-01
  • 1970-01-01
  • 2017-08-14
  • 2020-05-22
  • 1970-01-01
相关资源
最近更新 更多