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

news/2024/11/14 16:52:00/文章来源:https://www.cnblogs.com/1312mn/p/18535893

前言

深度学习技术的不断发展,神经网络在各个领域得到了广泛应用。为了满足 .NET 开发的需求,推荐一款使用 C# 编写的神经网络计算图框架。

框架的使用方法接近 PyTorch,提供了丰富的示例和详细的文档,帮助大家快速上手。

框架介绍

项目完全使用 C# 编写,提供了一个透明的神经网络计算图框架。用户可以查看和理解框架内部的任何实现细节。

框架支持多种网络结构,包括卷积神经网络(CNN)、反向传播网络(BP)、全连接网络(FCN)、长短期记忆网络(LSTM)、卷积长短期记忆网络(ConvLSTM)和门控循环单元网络(GRU)。

每个示例都附带了所需的数据内容,确保用户能够快速上手并进行实验。

使用说明

  • 损失函数支持:MESLOSS、交叉熵损失 (Cross-Entropy)
  • 激活函数支持:ReLU、Tanh、Sigmoid、Softmax
  • 数据类型支持:二维数据 float[][] 和四维数据 float[][][,]
  • 池化支持:平均池化、最大池化
  • 其他支持:卷积层 (ConvLayer)、二维卷积层 (Conv2DLayer)、乘法层 (MulLayer)、转置卷积层 (ConvTranspose2DLayer)

部分代码示例

//声明两个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();//反传播w2dynamic w22 = cl2.backweight(grid);//反传播W1dynamic 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网络运行图

CNN网络95%识别成功率

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

项目地址

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

最后

如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。

也可以加入微信公众号[DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!优秀是一种习惯,欢迎大家留言学习!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/831755.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安全通道异常识别系统

安全通道异常识别系统通过安装在消防通道附近的监控摄像头,安全通道异常识别系统对安全通道进行24小时不间断的监控。当系统检测到防火门被异常开启或安全通道被堵塞时,会立即启动警告机制,通过声音、灯光等方式提醒相关人员进行处理。同时,系统还会将异常信息实时传输到监…

creator2.4.5 astc问题排除

最近将creator2.4.5 发布web版本, 需要将所有的图片转astc, 但是不能无脑转, 需求去除预乘alpha的图片。 也就是 { "__type__": "cc.Texture2D", "content": "0,9729,9729,33071,33071,1,0,1" }这个content.split(",")[5…

工地施工机械设备识别检测系统

工地施工机械设备识别检测系统基于AI人工智能机器视觉分析识别技术,工地施工机械设备识别检测系统利用现场安装的监控摄像头,通过深度学习和图像识别技术,实现对工地上重型机械车辆的自动识别。这些重型机械车辆包括但不限于挖掘机、推土机、吊车等。一旦系统识别到这些车辆…

山体滑坡泥石流预警监测系统

山体滑坡泥石流预警监测系统基于AI人工智能机器视觉分析识别技术,山体滑坡泥石流预警监测系统通过利用现场监控摄像头,实现了对高危路段山体的实时监测。这种技术不仅取代了传统的人工巡查,提高了工作效率,守护人们的生命安全。山体滑坡泥石流预警监测系统的核心在于其强大…

数据库设计心得-实习空间

数据库设计心得——实习空间 前言 在软件工程导论以及数据库实验课程中,我们学习了如何通过分析业务需求来构建数据库实体对象以及PowerDesigner的使用。最终通过PowerDesigner完成了本项目的数据库概念模型、物理模型的设计。以下是我们团队的数据库设计过程以及一些心得体会…

智启新篇 | 您的专属AI大模型解决方案!

随着汽车智能化程度的不断提升,智能座舱作为汽车的重要组成部分,其功能和复杂度也在不断增加。从多屏交互、增强现实(AR)技术到个性化设置和语音交互,智能座舱为驾驶者提供了前所未有的驾驶体验。然而,这些新技术的引入也使得智能座舱的测试变得更加复杂和困难。在这样的…

团队作业4——项目冲刺-1

团队作业4——项目冲刺信息项 内容课程名称 广工计院计科34班软工作业要求位置 作业要求作业目标 小飞棍团队对需求改进和系统设计进行讨论GitHub链接 GitHub一、团队简介队名:小飞棍队团队成员:姓名 学号罗振烘(组长) 3122004748庄崇立 3122004633李响 3121002802何昌洲 3…

# 学期(如2024-2025-1) 学号(如:20241402) 《计算机基础与程序设计》第8周学习总结

学期(如2024-2025-1) 学号(如:20241402) 《计算机基础与程序设计》第8周学习总结 作业信息这个作业属于哪个课程 <班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 <作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)这个…

XXL-JOB docker 初始化

一、因为xxl-job 使用的是mysq 数据库,所有在 yaml 文件中,需要优先启动 mysql version: 3 services:mysql:image: mysql:8.0container_name: mysql8restart: alwaysenvironment:MYSQL_ROOT_PASSWORD: 123456MYSQL_DATABASE: xxl_jobports:- "3307:3306"xxl-job:im…

深度解读AI在数字档案馆中的创新应用:高效识别与智能档案管理

一、项目背景介绍 在信息化浪潮推动下,基于OCR技术的纸质档案电子化方案成为解决档案管理难题的有效途径。该方案通过先进的OCR技术,能够统一采集各类档案数据,无论是手写文件、打印文件、复古文档还是照片或扫描的历史资料,都能实现高效识别。利用文档智能分析技术,我们对…

2个月搞定计算机二级C语言——真题(11)解析

1. 前言 今天双 11,正好轮到讲第 11 篇,直接来个三 11。 那么本篇我们讲解2个月搞定计算机二级C语言——真题112. 程序填空题 2.1 题目要求2.2 提供的代码 #include <stdio.h> #include <ctype.h> #pragma warning (disable:4996) void fun(int* cd, int* cu…

代码随想录——二叉树-12.平衡二叉树

自顶向下递归(前序遍历)这种方法是一开始想到的,虽然ac了但是对于它的本质却不清不楚,不知道时间复杂度,不知道属于前序遍历。思路 首先得到root节点的左右子树的深度(左右),若深度差绝对值大于1(中),则root为根的树不是平衡二叉树; 否则继续递归root的左右子树,其…