我有时会遇到这样的问题:当我使用CNN对多类数据进行分类时,比如A,B,C,D类,所有数据都被归类为其中一类(因此精度大约为0.25)。
这绝对不是数据问题,因为当我在每两个之间进行两级分类时会有显着差异。
有时问题出现是因为我选择了太小的学习率,这有点容易理解为什么,但有时候,
Epoch [1/5], Iter [100/4688] Loss: 1.3861, Batch correct: 0.2676, Correct: 0.0053, At time: 0.23
Epoch [1/5], Iter [200/4688] Loss: 1.3872, Batch correct: 0.2480, Correct: 0.0106, At time: 0.47
Epoch [1/5], Iter [300/4688] Loss: 1.3869, Batch correct: 0.2285, Correct: 0.0160, At time: 0.70
Epoch [1/5], Iter [400/4688] Loss: 1.3860, Batch correct: 0.2578, Correct: 0.0213, At time: 0.95
我的学习率为0.1并使用nn.CrossEntropyLoss()。那还是一个学习率问题吗?
任何人都可以解释为什么会出现这个问题,我该怎么做才能克服它?