Tensorflow中train_acc/val_acc停留不动的解决方法
我在ImageNet上跑模型时,就碰到过这类问题。训练数据的loss在一开始可能变化很多,但很快就收敛(我的情况是第二个epoch就收敛了);与此同时train_acc/val_acc一直都没有太大变化。调整学习率也没有用。
经过长时间排查后,我发现问题应该是在损失函数处理logits这块地方(我用的是Sparse Categorical Crossentropy)。我把输出层的激活函数从linear改为softmax,然后设定损失函数from_logits=False,于是就不再出现这个问题了。
我猜想,原因可能是强制让输出变为概率分布能更容易地让损失函数进行计算(在multiclass classification任务中)。