【发布时间】:2019-05-20 21:02:03
【问题描述】:
我必须为多标签分类预先训练一个模型。我正在使用 cifar10 数据集进行预训练,我想知道我是否必须用于预训练 'categorical_crossentrpy' (softmax) 或 'binary_crossentropy' (sigmoid),因为在第一种情况下我有一个多分类问题
【问题讨论】:
标签: keras deep-learning multilabel-classification
我必须为多标签分类预先训练一个模型。我正在使用 cifar10 数据集进行预训练,我想知道我是否必须用于预训练 'categorical_crossentrpy' (softmax) 或 'binary_crossentropy' (sigmoid),因为在第一种情况下我有一个多分类问题
【问题讨论】:
标签: keras deep-learning multilabel-classification
您应该使用softmax,因为它为您提供了每个班级的概率,无论有多少班级。如您所写,Sigmoid 与binary_crossentropy 一起使用,并用于二进制分类(因此名称中包含二进制)。我希望现在更清楚了。
【讨论】:
sigmoid 和binnary crossentropy,这是不可能的。如果模型的输出超过 2 个,则必须使用 softmax 和 categorical crossentropy。为了回答你的问题,如果你想做普通的迁移学习(使用相同的模型),那么答案很明显,因为你使用的是相同的模型。如果您想使用预训练的权重并用它初始化不同模型的权重,我认为您不必使用相同的激活函数