gpt4 book ai didi

tensorflow - 如何使用 TensorFlow 学习多类多输出 CNN

转载 作者:行者123 更新时间:2023-12-03 16:40:16 42 4
gpt4 key购买 nike

我想用 TensorFlow 训练一个卷积神经网络来进行多输出多类分类。

例如:如果我们采用 MNIST 样本集,并且总是将两张随机图像组合成一张,然后想要对生成的图像进行分类。分类的结果应该是图像中显示的两位数字。

因此网络的输出可以具有 [-1, 2, 10] 的形状,其中第一个维度是批处理,第二个维度代表输出(是第一个还是第二个数字),第三个是“通常”显示数字的分类。

我尝试用谷歌搜索了一段时间,但没能找到有用的东西。另外,我不知道多输出多类分类是否是这个任务的正确命名。如果不是,正确的命名是什么?您是否有任何链接/教程/文档/论文来解释我需要做什么来构建损失函数/训练操作?

我尝试的是使用 tf.split 将网络的输出拆分为单个输出,然后在每个输出上使用 softmax_cross_entropy_with_logits。结果我对所有输出进行平均,但它似乎不起作用。这是一种合理的方式吗?

最佳答案

关于分类问题的命名法,你可以看看这个链接: http://scikit-learn.org/stable/modules/multiclass.html

所以你的问题叫做“多标签分类”。在正常的 TensorFlow 多类分类(经典 MNIST)中,您将有 10 个输出单元,您将在最后使用 softmax 来计算损失,即“tf.nn.softmax_cross_entropy_with_logits”。

例如:如果您的图片有“2”,那么 groundtruth 将为 [0,0,1,0,0,0,0,0,0,0]

但在这里,您的网络输出将有 20 个单位,您将使用 sigmoid 即“tf.nn.sigmoid_cross_entropy_with_logits”

例如:如果您的图片有“2”和“4”,那么groundtruth将为[0,0,1,0,0,0,0,0,0,0,0,0,0,0, 1,0,0,0,0,0],即前十位代表第一个数字类,第二个代表第二个数字类。

关于tensorflow - 如何使用 TensorFlow 学习多类多输出 CNN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40305692/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com