大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为优快云博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的知识进行总结与归纳,不仅形成深入且独到的理解,而且能够帮助新手快速入门。
本文主要介绍了l从numpy到pytorch(以DNN为例),希望能对学习pytorch的同学有所帮助。
下面以输入层–>隐藏层(linear & relu)–>输出层(linear)三层全连接神经网络(一个batch)为例,从numpy代码逐步扩展到pytorch。
文章目录
1. 使用numpy构建三层全连接神经网络
在纯粹使用numpy时,主要分为以下几步:
- 定义样本的个数、输入层维度、中间层维度、输出层维度
- 随机初始化一些训练集数据
- 定义学习率
- 随机初始化参数
- 构造前向传播网络
- 求损失函数
- 定义优化的函数(梯度下降、Adam等)求参数偏导
- 求参数偏导
- 更新参数
其中5-9这5步是神经网络重点部分
# 第一步:定义样本数,输入层维度,隐藏层维度,输出层维度
n