使用神经网络对图像进行一类分类

时间:2020-07-19 09:50:05

标签: tensorflow keras neural-network classification

目标是对狗和非狗进行分类。火车数据集仅包含狗图像。仅使用该训练数据集对神经网络进行训练,然后使用包含狗图像和非狗图像的测试数据集进行测试。

我遵循encoder Datacamp tutorial,在我的情况下,自动编码器将所有测试图像归类为狗,这是错误的。

也无法为一个类别分类构建CNN。知道怎么做吗?

1 个答案:

答案 0 :(得分:0)

您要查询的正确术语是二进制分类

您可以安全地使用CNN进行二进制分类。问题是如何对输出层建模。您可以将softmax图层与两个输出单元一起使用(argmax(output)为1类:dog,2类为not dog),也可以使用更传统的方法,将单个S型单元用作输出(output> 0.5:dog, <0.5:没有狗)。由于softmax规范化是Sigmoid激活的多类扩展,因此Sigmoid层在理论上更有意义,但是如果您在实现此问题时遇到困难,则softmax也应同样有效。

当然,您必须调整数据标签以适合这两种方法。

编辑:您需要狗的图像和不包含狗的图像。网络需要知道两者的分布。只需考虑您的用例以及您期望什么样的图像而不是狗。然后收集不是狗的图像并相应地标记它们。