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
    关注

    问题解决否,同样的问题

    评论

报告相同问题?

悬赏问题

  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配