zoukankan      html  css  js  c++  java
  • 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%

    还是很差劲。。。

    我的前方是万里征途,星辰大海!!
  • 相关阅读:
    POJ 1061 青蛙的约会(扩展欧几里得)
    贝祖定理(裴蜀定理)
    C语言 gets()和scanf()函数的区别
    非递归方式遍历二叉树
    zip包的解压
    八大基础排序中(直接插入排序,希尔排序,冒泡排序, 快速排序,归并排序,简单选择排序)
    数字反序与数字的和
    合并两个有序数组,合并后数组仍有序
    使用递归方式和非递归方式求斐波那契数
    求100到999之内的水仙花数
  • 原文地址:https://www.cnblogs.com/taoyuxin/p/11958809.html
Copyright © 2011-2022 走看看