神经网络框架使用方法及设计思想
- 在框自己手写架上基本模仿pytorch,用以学习神经网络的基本算法,如前向传播、反向传播、各种层、各种激活函数
- 采用面向对象的思想进行编程,思路较为清晰
- 想要神经网络的同学们可以参考一下
- 代码大体框架较为清晰,但不否认存在丑陋的部分,以及对于pytorch的拙劣模仿
项目介绍
- MINST_recognition:
手写数字识别,使用MINST数据集
训练30轮可以达到93%准确度,训练500轮左右达到95%准确度无法继续上升
- RNN_sin_to_cos:
使用循环神经网络RNN,用sin的曲线预测cos的曲线
目前仍有bug,无法正常训练
框架介绍
- 与框架有关的代码都放在了mtorch文件夹中
- 使用流程
与pytorch相似,需要定义自己的神经网络、损失函数、梯度下降的优化算法等等
在每一轮的训练中,先获取样本输入将其输入到自己的神经网络中获取输出。然后将预测结果和期望结果交给损失函数计算loss,并通过loss进行梯度的计算,最后通过优化器对神经网络的参数进行更新。
结合代码理解更佳