Poppy_black 2019-01-10 15:25 采纳率: 0%
浏览 1751

BP神经网络,relu做激活函数,求大神帮忙

写了一个用relu实现BP神经网络的代码,但是发现relu使得ou输出都是0,但是还是不行,错误率高达60%,我是自学的,代码可能存在错误,下面是主要的代码,希望能够得到网上各位大神的帮忙,谢谢了


double* backward(double *delta)
{
    for (int i = 0; i < onum; i++)
    {
        deto[i] = delta[i];
        for (int j = 0; j < hnum; j++)
            wo[j][i] = wo[j][i] + learnrate*delta[i]*xh[j];
    }
    for (int i = 0; i < hnum; i++)
    {
        for (int j = 0; j < onum; j++)
            deth[i] += deto[j] * wo[i][j]*relubk(xh[i]);
        for (int j = 0; j < inum; j++)
            wi[j][i] += learnrate*deth[i]*xi[j];
    }
    for (int i = 0; i < inum; i++)
        for (int j = 0; j < hnum; j++)
            deti[i] += deth[j] * wi[i][j] * relubk(xi[i]);
    for(int i=0;i<onum;i++)
        obias[i]+= learnrate*delta[i];
    for (int i = 0; i < hnum; i++)
        hbias[i] += learnrate*deth[i];
    return deti;
}
我最后一级用了sigmoid 
double *dec(double *x, double *y, int l, double *det)
{
    double det2[N] = { 0 };
    for (int i = 0; i < l; i++)
    {
        xou[i] = 0;
        for (int j = 0; j < l; j++)
            xou[i] += x[j] * weight[j][i];
        xou[i] = 1.0 / (1.0 + exp(-xou[i] - bias[i]));
        //fl << "xou" << i << xou[i] << ' ';
    }
    fl << endl;
    for (int i = 0; i < l; i++)
    {
        det2[i] = (y[i] - xou[i])*(1-xou[i])*xou[i];
        fl << det2[i] << "," << y[i] << endl;

        for (int j = 0; j < l; j++)
        {
            weight[j][i] += learnrate*det2[i] * x[i];
        }

    }
    for (int i = 0; i < l; i++)
    {
        bias[i] += learnrate*det2[i];
    }
    for (int i = 0; i < l; i++)
    {
        det[i] = 0;
        for (int j = 0; j < l; j++)
            det[i] += relubk(x[i])*det2[j] * weight[i][j];
        fl << "det" << i << ":" << det[i] << ' ';
    }
  • 写回答

1条回答 默认 最新

  • 从前明月 2021-07-16 09:45
    关注

    问题解决否,同样的问题

    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?