【问题标题】:How to add testing category in Keras model?如何在 Keras 模型中添加测试类别?
【发布时间】:2021-06-07 18:02:18
【问题描述】:

我有一个接受过类 = [狗、猫、青蛙] 训练的 CNN,并且在仅测试阶段,我想包含几张马的照片,以查看这些图像被归类为哪些已知类别。知道如何在 Keras 模型中实现这一点吗?

我尝试过但我不喜欢的一件事是在已知类别(狗、猫和青蛙)的训练图像中平均随机分布马的图片,然后看看测试图像会发生什么.我担心马图像的数量(虽然相对较小)会对模型的 a 知识产生负面影响这是相应的代码:

<x_train, x_test, y_train, and y_test has already been done prior to this step>

clsLst = [dog, cat, frog]
clsRemove = horse

seed(1)
newClsLst = [0,0,0]
for I in range(0,len(y_train)):
  if y_train[i][clsRemove] = 1.0:
    y_train[i][clsRemove] = 0.0
    randIndex = random.randint(0,8)
    newCls = clsLst[randIndex]
    newClsLst[newCls] = newClsLst[newCls] + 1
    y_train[i][newCls] = 1.0

这只是我第二次使用 Keras,而且我没有编程背景,因此感谢所有提示和过度解释。

【问题讨论】:

  • 您可以使用model.predict()单独预测马图像的输出。

标签: python tensorflow keras conv-neural-network


【解决方案1】:

正如您自己正确指出的那样,将马图像添加到您的训练数据中是一个坏主意 - 当然,除非您想扩展模型的分类能力,以便它学会识别马。

也就是说,您可以简单地将马的图像添加到 x_test 或设置一个单独的测试数据集(例如,x_test_horses)用于这个特定的测试目的,即马被(错误)分类为什么。 正如您在原始帖子下方的 Saankhya Mondal 评论中所指出的那样,您可以使用这两个选项简单地使用 model.predict() 进行预测(y_pred = model.predict(x_test) 分别为 y_pred = model.predict(x_test_horses))。

【讨论】:

  • 我希望最终让模型识别马匹。感谢您的直截了当和友善的回答。
  • @KaraCombs 如果您希望您的模型识别马匹,我认为您应该在训练测试拆分之前简单地将马匹数据附加到您的数据集,然后对其进行洗牌。要打乱数据帧,您可以这样做:df = df.sample(frac=1).reset_index(drop=True)(请参阅here)。
猜你喜欢
  • 2020-08-12
  • 2015-06-07
  • 2018-07-18
  • 2019-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 2020-04-25
  • 1970-01-01
相关资源
最近更新 更多