polar神经网络DNN译码训练

 

 

输出层没有添加激活函数softmax

 虽然loss的值不高,但是accuracy的值也很低,虽然训练集的loss一致在下降,但是测试集的loss却在震荡,几乎不变。不知道该怎么解决。——2019.11.28   11:29

输出层添加了softmax激活函数之后:

 

 为什么验证集的Loss降到一半就再不降了??是因为过拟合了吗?看别人的说法是梯度爆炸,让减小学习率,但是现在学习率是0.001,已经比较小了。

 准确率并没有提升,loss也比不添加softmax时要大,而且测试集与验证集的loss差不多。——11:33

试试再次降低学习率为0.0001:

验证集的loss差不多保持在0.2.

训练的acc在上升,验证集的acc在下降,这应该是过拟合了,接下来减少神经网络层数,隐藏层由128-64-32变成了64-32:

验证集的acc稍微有所改善,应该加大epochs,由500增加到1000试试:

 

 

 什么用也没有。。。

问题出在哪里?loss勉强可以,但是acc死活上不去。。。

这个说法和我的情况很像,还是要自己写一个性能函数。


跑不正确的实际情况是我没把数据集生成对,在师兄的帮助下,成功生成了数据集,在没有编码的情况下,得到如下实验结果:——2019.11.29  9:09

 迭代次数为100000.

模型保存为

model.save('polar_dnn_16_8.h5')

这是未编码训练模型。

根据自己写的acc性能函数,跑出来测试集的误块率为78%,太高了。正确率22%

 计算了一下误码率17.2%,正确率83.8%


加入编码过程, 运行结果如下图所示:

 但是正确率还是达不到百分之90以上。

不知道这个为什么会先降低后升高。验证集的loss比未编码之间要高。迭代40000次的时候就已经收敛了。

 由图可知,错误率为9.05%,正确率为84%。

然后跑一下自己写的性能函数:

误块率80.7%,误码率22.1%

还是很差劲。。。

猜你喜欢

转载自www.cnblogs.com/taoyuxin/p/11958809.html