Keras为什么二进制分类不如分类校准准确

时间:2019-12-19 12:50:50

标签: tensorflow machine-learning keras deep-learning

我正在尝试创建一个模型,该模型可以判断图像中是否有鸟类。

我当时使用分类法训练模型以识别Bird v.s.鲜花,在识别这两个类别方面,结果非常成功。

但是,当我将其更改为“二进制分类”以检测图像中是否存在鸟类时,准确性会急剧下降。

  

我之所以改用二进制分类,是因为如果我   为我的分类分类训练模型提供了一条狗,   认出那只狗是鸟。

顺便说一句,这是我的数据集结构:

培训: 鸟类可拍摄5000张图像,非鸟类可拍摄2000张图像

验证: 鸟类可拍摄1000张图像,非鸟类可拍摄500张图像

enter image description here

有人说,模糊的数据集也会引起问题。是真的吗?

有人可以指出以下代码在哪里出错了吗?

list_2 = ['financial','disastrous','accuracy','important','numbers']
reg = r'[bdðfghjklmnprstvxþ]+'
d = []
largest = []
for w in list_2:
    d.append(re.findall(reg, str(w), re.IGNORECASE))
print(d)

1 个答案:

答案 0 :(得分:2)

类别

  • 使用Num_Classes = 2
  • 使用一键编码的目标(例如:Bird = [1, 0]Flower = [0, 1]
  • 使用'softmax'激活
  • 使用'categorical_crossentropy'

二进制

  • 使用Num_Classes = 1
  • 使用二进制目标(例如:is flower = 1 | not flower = 0
  • 使用'sigmoid'激活
  • 使用'binary_crossentropy'

此处的详细信息:Using categorical_crossentropy for only two classes