gpt4 book ai didi

tensorflow - Dense(2)和Dense(1)之间的区别是二进制分类CNN的最后一层?

转载 作者:行者123 更新时间:2023-12-04 08:20:36 26 4
gpt4 key购买 nike

在用于图像的二进制分类的CNN中,输出的形状应该是(图像数量1)还是(图像数量2)?具体来说,这是CNN中的2种最后一层:

keras.layers.Dense(2, activation = 'softmax')(previousLayer)


要么

keras.layers.Dense(1, activation = 'softmax')(previousLayer)


在第一种情况下,每个图像都有2个输出值(属于组1的概率和属于组2的概率)。在第二种情况下,每个图像只有1个输出值,即它的标签(0或1,label = 1表示它属于组1)。

哪一个是正确的?有内在的区别吗?我不想识别这些图像中的任何对象,只需将它们分为2组即可。

非常感谢!

最佳答案

第一个是正确的解决方案:

keras.layers.Dense(2, activation = 'softmax')(previousLayer)


通常,我们使用 softmax激活函数执行分类任务,并且输出宽度将为类别的数量。这意味着,如果要使用标签 ABC将一个对象分为三类,则需要使 Dense层生成形状为 (None, 3)的输出。然后,您可以使用 cross_entropy损耗函数来计算 LOSS,自动计算梯度并执行反向传播过程。

如果只想在 Dense层上生成一个值,则意味着您会得到形状为 (None, 1)的张量-因此它会生成单个数值,如 regression任务。您正在使用输出的值来表示类别。答案是正确的,但其表现不如 classification任务的一般解决方案。

关于tensorflow - Dense(2)和Dense(1)之间的区别是二进制分类CNN的最后一层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50808593/

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