我使用tensorflow
在我的数据集上训练一个简单的双层RNN。训练曲线如下所示:
其中,x-axis
是步骤(在一个步骤中,batch_size
个样本用于更新网络参数),y-axis
是准确度。红色,绿色,蓝色线分别是训练集,验证集和测试集的准确度。似乎训练曲线不平滑并且有一些腐败的变化。这合理吗?
答案 0 :(得分:1)
因为你正在使用SGD,所以绝对没问题。总的趋势是,随着使用的小型推车数量的增加,您的准确度会增加,但是,一些小型推车可能与其他小型推车明显“不同”,因此准确性可能会很差。
答案 1 :(得分:1)
您的测试和验证准确度在第13和第21次可怕地下降的事实是可疑的。例如。 13将测试分数降至第1纪元以下。
这意味着您的学习率可能过高:单个小批量不应导致重量变化。
答案 2 :(得分:1)
您是否尝试过渐变剪辑,Adam优化器和学习率衰减? 根据我的经验,渐变剪辑可以防止爆炸渐变,Adam优化器可以更快地收敛,学习速率衰减可以改善泛化。
您是否改组了训练数据?
此外,可视化权重的分布也有助于调试模型。