自强不息    厚德载物

用于神经网络的计算图框架 WeaveNet

  2020/7/25 18:26:59   【次浏览】 开源中国

WeaveNet 是一个使用 C# 编写的用于神经网络的计算图框架 computational graph。带有cnn、bp、fcn、lstm、convlstm 等示例。使用方法接进 pytorch。

软件架构

架构完全使用c#编写,可以看到内部任何细节的实现,包含cnn,bp,fcn,lstm,convlstm等示例内容,包含示例所用的数据内容。

使用说明

  1. LOSS支持:MESLOSS,cross-entropy

  2. 激活函数支持:ReLu,Tanh,Sigmod,Softmax

  3. 数据类型支持: float[][] 与 float[][][,],二维与四维

  4. 池化支持:平均池化,最大池化

  5. 其他支持:ConvLayer,Conv2DLayer,MulLayer

部分BP代码示例

          //声明两个ConvLayer 和一个激活函数SigmodLayer 
          ConvLayer cl1 = new ConvLayer(13, 5, true);
          
            SigmodLayer sl = new SigmodLayer();            float lr = 0.5f;
            ConvLayer cl2 = new ConvLayer(5, 1, true);            
            int i = 0,a=0;            while (a < 5000)
            {                 
                    dynamic ff = cl1.Forward(x);
                    ff = sl.Forward(ff);
                    ff = cl2.Forward(ff);                   
                    //计算误差
                    MSELoss mloss = new MSELoss();                   
                    var loss = mloss.Forward(ff, y);

                    Console.WriteLine("误差:" + loss);                    dynamic grid = mloss.Backward();                    //反传播w2
                   
                    dynamic w22 = cl2.backweight(grid);                    //反传播W1
                    dynamic grid1 = cl2.backward(grid);
                    grid1 = sl.Backward(grid1);                    dynamic w11 = cl1.backweight(grid1);                       
                   //更新参数
                    cl2.weights = Matrix.MatrixSub(cl2.weights, Matrix.multiply(w22.grid, lr));
                    cl2.basicData = Matrix.MatrixSub(cl2.basicData, Matrix.multiply(w22.basic, lr));

                    cl1.weights = Matrix.MatrixSub(cl1.weights, Matrix.multiply(w11.grid, lr));
                    cl1.basicData = Matrix.MatrixSub(cl1.basicData, Matrix.multiply(w11.basic, lr));
                    i++;
              
                a++;
            }

BP网络运行图

BP网络运行图

CNN网络0.93识别成功率

CNN网络0.93识别成功率 

lstm网络预测PM2.5空气质量

lstm网络预测PM2.5空气质量


手机扫码查看当前文章:

用于神经网络的计算图框架 WeaveNet

如本网转载稿涉及版权等问题,请作者见稿后在两周内速来电与我们联系, 详见版权声明

  上一篇:没有了

 下一篇:地图引擎 mapfinal