首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >卷积神经网络训练

卷积神经网络训练
EN

Stack Overflow用户
提问于 2017-11-17 18:20:47
回答 4查看 224关注 0票数 0

我有一个关于卷积神经网络(CNN)训练的问题。

我已经成功地使用tensorflow训练了一个网络,它接受一个输入图像(1600像素),并输出三个匹配它的类中的一个。

用训练好的类的变体测试网络得到了很好的结果。然而,当我给它一个不同的第四图像(不包含任何经过训练的3图像)时,它总是返回一个随机匹配到其中一个类。

我的问题是,我如何训练网络来分类图像不属于这三个训练图像中的任何一个?一个类似的例子,如果我针对mnist数据库训练一个网络,然后给它一个字符"A“或"B”。有没有一种方法可以区分输入不属于这两个类?

谢谢

EN

回答 4

Stack Overflow用户

发布于 2017-11-17 22:11:42

您的模型将始终像您的标签一样进行预测,因此,例如,如果您使用MNIST数据训练您的模型,当您进行预测时,预测将始终是0-9,就像MNIST标签一样。

你可以做的是首先用两个类别训练一个不同的模型,在这个模型中,你将预测一个图像是属于数据集A还是属于B.E.x。对于MNIST数据,您将所有数据标记为1,并添加来自不同来源(不是0-9)的数据,并将其标记为0。然后训练一个模型,以确定图像是否属于MNIST。

票数 1
EN

Stack Overflow用户

发布于 2017-11-17 19:12:06

卷积神经网络(CNN)在训练后从定义的类中预测结果。CNN总是从其中一个类返回,而不考虑准确性。我也遇到过类似的问题,你能做的就是检查准确值。如果准确率低于某个阈值,则它属于无类别。希望这能有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2017-11-22 22:58:37

您可能有三个输出节点,并选择最大值(一次热编码)。这有点不幸,因为它的输出数量很少。无法识别的输入往往会导致相当随机的输出。

现在,有3个输出,粗略地说,你可以得到7个结果。您可能会得到一个高的值(3种可能性),但无法识别的输入也可能导致2种高的输出(也有3种可能性)或大致相等的输出(也有3种可能性)。因此,随机输入在输出节点上产生模式的可能性很大(~ 3/7),这是您仅对已识别的输入所期望的。

现在,如果您有15个类,因此有15个输出节点,那么对于未识别的输入,您将看到大约32767个可能的结果,其中只有15个对应于预期的单热点结果。

这背后的原因是缺乏训练数据。如果你的训练集有3个类别之外的例子,你可以把它放在第四个“其他”类别中,然后用它进行训练。这本身并不是一个可靠的指示,因为通常理论上的“其他”集合是巨大的,但您现在有两种互补的方法来检测其他输入:通过“其他”输出节点或通过11个不明确的输出中的一个。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47348343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档