# ZGSharp **Repository Path**: lizhigong/zgsharp ## Basic Information - **Project Name**: ZGSharp - **Description**: 基于Csharp .net的深度学习框架,方便.net开发人员学习人工神经网络。 以学习交流为主,代码结构简单,不依赖其他库,方便看懂里面的逻辑和公式。目前没做性能优化。 目前处于初始阶段,最终目标是打造一个功能相对全面的框架。 - **Primary Language**: C# - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-07-25 - **Last Updated**: 2022-08-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: 人工智能, 深度学习框架 ## README # ZGSharp #### 介绍 基于Csharp .net的深度学习框架,方便.net开发人员学习人工神经网络。 代码结构简单,不依赖其他库,方便看懂里面的逻辑和公式。 #### 软件架构 软件架构说明 VS+.net6.0 #### 安装教程 1. 安装vs2022 和 .net 6.0 2. git clone https://gitee.com/lizhigong/zgsharp.git 3. 双击ZGSharp.sln打开后点击调试运行即可 #### 使用说明 可以方便快速的搭建人工神经网络,以下是ANN网络的示例: public class AnnNet : Model { Linear layerLinear0 = new ZGSharp.Layers.Linear(28 * 28, 64); Linear layerLinear1 = new ZGSharp.Layers.Linear(64, 32); Linear layerLinear2 = new ZGSharp.Layers.Linear(32, 10); protected override Tensor forward(Tensor input) { Tensor tensor = layerLinear0.LayerPred(input); tensor = Relu.relu(tensor); tensor = layerLinear1.LayerPred(tensor); tensor = Relu.relu(tensor); tensor = layerLinear2.LayerPred(tensor); return tensor; } } CNN网络示例: public class CnnNet : Model { Conv2D Conv0 = new ZGSharp.Layers.Conv2D(1, 32, new int[] { 3, 3 }, new int[] {1, 1 });//28*28->14*14 Conv2D Conv1 = new ZGSharp.Layers.Conv2D(32, 32, new int[] { 3, 3 }, new int[] { 1, 1 });//7*7 Linear linear1 = new ZGSharp.Layers.Linear(49*32, 64); Linear linear2 = new ZGSharp.Layers.Linear(64, 10); protected override Tensor forward(Tensor input) { Tensor tensor = Pool2D.MaxPool(Conv0.LayerPred(input), new int[] {2, 2 }); //13*13 tensor = Relu.relu(tensor); tensor = Pool2D.MaxPool(Conv1.LayerPred(tensor), new int[] { 2, 2 }); //6*6 tensor = Relu.relu(tensor); tensor = linear1.LayerPred(tensor); tensor = Relu.relu(tensor); tensor = linear2.LayerPred(tensor); return tensor; } } 功能持续完善中,目前支持的算子有: dropout、全连接层、张量的加减乘除、开方、log、reduce mean、reduce sum、relu、sigmoid、 softmax、mse loss、 cross entroy loss、conv2D、pool2D。 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)