一款 C# 编写的神经网络计算图框架

打印 上一主题 下一主题

主题 933|帖子 933|积分 2803

前言

深度学习技术的不停发展,神经网络在各个领域得到了广泛应用。为了满意 .NET 开发的需求,推荐一款使用 C# 编写的神经网络计算图框架。
框架的使用方法接近 PyTorch,提供了丰富的示例和详细的文档,资助各人快速上手。
框架介绍

项目完全使用 C# 编写,提供了一个透明的神经网络计算图框架。用户可以查看和理解框架内部的任何实现细节。
框架支持多种网络结构,包括卷积神经网络(CNN)、反向传播网络(BP)、全连接网络(FCN)、长短期影象网络(LSTM)、卷积长短期影象网络(ConvLSTM)和门控循环单元网络(GRU)。
每个示例都附带了所需的数据内容,确保用户能够快速上手并进行实验。
使用说明


  • 损失函数支持:MESLOSS、交叉熵损失 (Cross-Entropy)
  • 激活函数支持:ReLU、Tanh、Sigmoid、Softmax
  • 数据类型支持:二维数据 float[][] 和四维数据 float[][][,]
  • 池化支持:均匀池化、最大池化
  • 其他支持:卷积层 (ConvLayer)、二维卷积层 (Conv2DLayer)、乘法层 (MulLayer)、转置卷积层 (ConvTranspose2DLayer)
部分代码示例
  1. //声明两个ConvLayer 和一个激活函数SigmodLayer
  2. ConvLayer cl1 = new ConvLayer(13, 5, true);
  3.          
  4. SigmodLayer sl = new SigmodLayer();
  5. float lr = 0.5f;
  6. ConvLayer cl2 = new ConvLayer(5, 1, true);
  7. int i = 0,a=0;
  8. while (a < 5000)
  9. {
  10.      
  11.         dynamic ff = cl1.Forward(x);
  12.         ff = sl.Forward(ff);
  13.         ff = cl2.Forward(ff);
  14.       
  15.         //计算误差
  16.         MSELoss mloss = new MSELoss();
  17.       
  18.         var loss = mloss.Forward(ff, y);
  19.         Console.WriteLine("误差:" + loss);
  20.         dynamic grid = mloss.Backward();
  21.         //反传播w2
  22.       
  23.         dynamic w22 = cl2.backweight(grid);
  24.         //反传播W1
  25.         dynamic grid1 = cl2.backward(grid);
  26.         grid1 = sl.Backward(grid1);
  27.         dynamic w11 = cl1.backweight(grid1);
  28.            
  29.        //更新参数
  30.         cl2.weights = Matrix.MatrixSub(cl2.weights, Matrix.multiply(w22.grid, lr));
  31.         cl2.basicData = Matrix.MatrixSub(cl2.basicData, Matrix.multiply(w22.basic, lr));
  32.         cl1.weights = Matrix.MatrixSub(cl1.weights, Matrix.multiply(w11.grid, lr));
  33.         cl1.basicData = Matrix.MatrixSub(cl1.basicData, Matrix.multiply(w11.basic, lr));
  34.         i++;
  35.   
  36.     a++;
  37. }
复制代码
BP网络运行图


CNN网络95%识别乐成率


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


项目地点

Gitee:https://gitee.com/UDCS/WeaveAI
最后

如果你觉得这篇文章对你有资助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的资助,接待随时留言。
也可以加入微信公众号[DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!优秀是一种风俗,接待各人留言学习!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

东湖之滨

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表