
一起撸个DL框架
文章平均质量分 96
亲手造轮子,将帮助你更好地理解深度学习框架的工作原理与机制,让我们一起用python实现一个简单的深度学习框架吧!
清风莫追
我独自走在,郊外的小路上,我把糕点带给外婆尝一尝……
展开
-
【一起撸个深度学习框架】6 折与曲的相会——激活函数
但在实际遇到的问题中,输入与输出之间往往并不是简单的线性关系,它们之间的函数关系可能是二次的、指数、甚至分段的。此时”自适应线性单元“就不足以满足我们的需求了。而”激活函数“,将为计算图带来一种拟合这些非线性函数关系的能力。同时为了得到对于激活函数更加清晰和形象化的认知,本节我们还将使用matplotlib对拟合过程进行一些可视化的展现。原创 2023-05-15 20:57:26 · 866 阅读 · 40 评论 -
【一起撸个DL框架】5 实现:自适应线性单元
上一节我们实现了计算图的反向传播,可以求结果节点关于任意节点的梯度。下面我们将使用梯度来更新参数,实现一个简单的自适应线性单元。我们本次拟合的目标函数是一个简单的线性函数:y=2x+1,通过随机数生成一些训练数据,将许多组x和对应的结果y值输入模型,但是并不告诉模型具体函数中的系数参数“2”和偏置参数“1”,看看模型能否通过数据“学习”到参数的值。文章目录5 实现:自适应线性单元🍇1 简介2 损失函数2.1 梯度下降法2.2 补充3 整理项目结构4 损失函数...原创 2023-04-30 16:40:23 · 1690 阅读 · 25 评论 -
【一起撸个DL框架】4 反向传播求梯度
【一起撸个DL框架】3 前向传播前面我们已经介绍了前向传播,而本节即将介绍的反向传播中的自动微分机制,可以说是深度学习框架的一个核心功能。因为计算图中的参数正是按照着梯度的指引来更新的。目录4 反向传播求梯度4.1 简介4.2 导数与梯度4.3 链式法则4.4 示例:y=2x+1的梯度原创 2023-04-29 02:03:33 · 638 阅读 · 5 评论 -
【一起撸个DL框架】3 前向传播
在上一节中,我们定义了加法节点和变量节点类,搭建计算图并实现了加法功能。但还有一个小问题,那就是节点类的定义中,只有父节点有值时,才能调用compute()方法计算本节点的值。而当存在多个节点串联时,就无法直接调用结果节点的compute()方法。因此,这一节我们将采用递归来解决这个问题。文章目录3 前向传播🥝3.1 前情提要3.2 前向传播:递归的forward方法3.3 再添乘法节点:搭建函数y=2x+13.4 小结原创 2023-04-27 17:32:38 · 688 阅读 · 3 评论 -
【一起撸个DL框架】2 节点与计算图的搭建
这一节将动手搭建一个简单的“计算图”,并在其上进行计算。目录:2 节点与计算图的搭建2.1 简介2.2 设计节点类2.3 节点类的具体实现2.4 搭建计算图进行计算2.5 小结2.6 题外话——节点存储的值原创 2023-04-25 12:00:00 · 427 阅读 · 23 评论 -
【一起撸个DL框架】1 绪论
第一章 绪论1.1 在人工智能的大潮里1.2 为什么重复造轮子1.3 深度学习框架简介。摘要:使用框架的过程难以让我了解它,因为我能看见的唯有现象而已。人们有时会说,不懂就去读源代码,而这也很难得以清晰的了解框架的原理,不过是管中窥豹,只见一斑罢了。而亲手造轮子的方法很有用,它迫使你将脑海中碎片化的知识组织起来,以达到你的目标。原创 2023-04-02 21:00:05 · 4996 阅读 · 50 评论