神经网络:numpy实现神经网络框架

可以用于前面文章提到的MINST数据集的手写数字识别、也可以用于其他的方面

Github:

https://github.com/BeityLuo/Deeplearning-frame-from-scrach

以下的文字介绍在仓库中的README.md文件中有相同内容

神经网络框架使用方法及设计思想

在框架上基本模仿pytorch,用以学习神经网络的基本算法,如前向传播、反向传播、各种层、各种激活函数

采用面向对象的思想进行编程,思路较为清晰

想要自己手写神经网络的同学们可以参考一下

代码大体框架较为清晰,但不否认存在丑陋的部分,以及对于pytorch的拙劣模仿

项目介绍

MINST_recognition:

手写数字识别,使用MINST数据集

训练30轮可以达到93%准确度,训练500轮左右达到95%准确度无法继续上升

RNN_sin_to_cos:

使用循环神经网络RNN,用\(sin\)的曲线预测\(cos\)的曲线

目前仍有bug,无法正常训练

框架介绍

与框架有关的代码都放在了mtorch文件夹中

使用流程

与pytorch相似,需要定义自己的神经网络、损失函数、梯度下降的优化算法等等

在每一轮的训练中,先获取样本输入将其输入到自己的神经网络中获取输出。然后将预测结果和期望结果交给损失函数计算loss,并通过loss进行梯度的计算,最后通过优化器对神经网络的参数进行更新。

结合代码理解更佳

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzfspp.html