gpt4 book ai didi

machine-learning - Caffe输出层数精度

转载 作者:行者123 更新时间:2023-11-30 08:26:16 26 4
gpt4 key购买 nike

我修改了Caffe MNIST example对图像进行 3 类分类。我注意到的一件事是,如果我将输出层的数量指定为 3,那么我的测试精度会急剧下降 - 降至 40% 的范围。但是,如果我 +1 并且有 4 个输出层,则结果在 95% 的范围内。
我在我的数据集中添加了额外的图像类(所以 4 个类)并注意到同样的事情 - 如果输出层的数量与类的数量相同,那么结果是可怕的,如果它是相同的 +1,然后效果非常好。

  inner_product_param {
num_output: 3
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"

有谁知道这是为什么吗?我注意到,当我使用模型时,我使用 C++ example code 进行训练在我的测试集中的图像上,它会提示我已经告诉它存在 4 个类,而我在标签文件中只提供了 3 个类的标签。如果我发明一个标签并将其添加到文件中,我可以让程序运行,但无论我给它什么图像,它都只会返回概率为 1.0 的类之一。

最佳答案

值得注意的是,在微调和/或更改标签数量时,输入标签必须始终从 0 开始,因为它们在计算时用作输出概率向量的索引损失。
因此,如果您有

 inner_product_params {
num_output: 3
}

您必须只有训练标签 0,1 和 2。

如果您使用带有标签 1,2,3 的 num_output: 3,caffe 无法表示标签 3,并且实际上有一个与标签 0 相对应的冗余行未被使用。
正如您所观察到的,当更改为 num_output: 4 时,caffe 再次能够表示标签 3 并且结果得到改善,但参数矩阵中仍然有未使用的行。

关于machine-learning - Caffe输出层数精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32247374/

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