当前位置: 首页 > news >正文

第5章 误差反向传播法

5.4 简单层的实现

 

  • 5.4.1、乘法层的实现

 

class MulLayer:def __init__(self):self.x = None  #None是特殊类型,它用来表示“空”或“无值”。self.y = None #这里对x,y声明,backward和forward都可以使用def forward(self, x, y):self.x = xself.y = yout = x * yreturn outdef backward(self, dout):dx = dout * self.y # 翻转x和y 这里dx其实是dL/dx, dout是dL/doutdy = dout * self.xreturn dx, dy

 
init()中会初始化实例变量x和y,它们用于保存正向传播时的输入值。
forward()接收x和y两个参数,将它们相乘后输出。
backward()将从上游传来的导数(dout)乘以正向传播的翻转值,然后传给下游。
 

  • 5.4.2、 加法层的实现

 

class AddLayer:def __init__(self):passdef forward(self, x, y):out = x + yreturn outdef backward(self, dout):dx = dout * 1dy = dout * 1return dx, dy

 
加法层不需要特意进行初始化,所以__init__()中什么也不运行(pass语句表示“什么也不运行”)。
加法层的forward()接收x和y两个参数,将它们相加后输出。
backward()将上游传来的导数(dout)原封不动地传递给下游。
 

  • 为什么这里不需要初始化呢?因为没有数据需要在forward和backward之间传递,简而言之,就是$ \frac{\partial out}{\partial x}$ =1了,是个常量
     

5.5 激活函数层的实现

 

  • 5.5.1 ReLu

ReLu 导数
 
class Relu:def __init__(self):self.mask = None  def forward(self, x):  #如果 x [5,-5,0,1,-1]self.mask = (x <= 0)  #[False, True, True, False, True] out = x.copy()  #[5, -5, 0, 1, -1]out[self.mask] = 0 #[5, 0, 0, 1, 0] return outdef backward(self, dout):dout[self.mask] = 0 #根据self.mask来决定,简言之,就是x<=0处,对应值赋值为0 ,[ , 0,0 , , 0]dx = dout return dx

 

  • 5.5.2 Sigmoid

 

 

sigmoid正向传播

 
 

sigmoid反向传播计算

 

 

sigmoid反向传播简化表达

 

class Sigmoid:def __init__(self):self.out = Nonedef forward(self, x):out = 1 / (1 + np.exp(-x))self.out = outreturn outdef backward(self, dout):dx = dout * (1.0 - self.out) * self.outreturn dx

 

5.6 Affine/Softmax层的实现

 

  • 5.6.1 Affine层

 

http://www.zskr.cn/news/175909.html

相关文章:

  • 精选永辉超市卡回收优质平台推荐 - 京顺回收
  • 2025年靠谱的枕式包装机厂家推荐:半自动枕式包装机品牌哪家强? - 工业品网
  • 从国际救援到边境防御:解密实时测绘无人机集群的“智”胜之道 - 品牌2025
  • 冷冻离心机/高速离心机/低速离心机品牌厂家2025年终盘点 - 品牌推荐大师
  • 2026年制造业海外营销代运营公司精选(涵盖 Facebook、LinkedIn 领英、TikTok 、Google营销推广获客解决方案) - 品牌2025
  • 相控阵天线
  • 破局与立新:解锁数字资产交易所全链路开发与运营秘籍
  • 阶跃星辰深度研究32B媲美Gemini深度研究能力,成本不到1/10
  • Equity 2026年预测:AI智能体崛起、重磅IPO与风投行业变革
  • 英伟达史上最大收购!200亿美元收购Groq解读
  • java计算机毕业设计校园文化社区视频网站 校园青春视频分享与互动平台 高校文化社区流媒体系统
  • 【QOwnNotes】编译笔记
  • 学长亲荐8个AI论文软件,研究生轻松搞定毕业论文!
  • python医疗药店连锁药店管理系统vue
  • 企业将AI生产力提升收益再投入自动化扩展
  • 2025年国家高新认定推荐企业排行榜:国家高新认定诚信的公司有哪些? - 工业推荐榜
  • 护网行动期间新人最容易犯哪些错误?如何避免?
  • java计算机毕业设计校园食堂订餐系统 高校智慧食堂在线订餐平台 校园餐饮一站式预约系统
  • TechCrunch Disrupt创业竞赛中脱颖而出的7家太空与国防科技公司
  • Jupyter Notebook插入图片和视频展示模型输出效果
  • IDEA(2020版)实现JSP隐式对象
  • 2025年河北跨境物流服务公司推荐榜:跨境电商物流服务/海外仓运营服务/国际货运代理服务/国际海运代理服务/国际空运代理服务/海外仓服务公司精选 - 品牌推荐官
  • 从GitHub克隆项目到本地运行:基于PyTorch-CUDA镜像的全流程
  • 深度学习入门必看:用PyTorch-v2.7快速搭建CNN模型
  • python汽车4s店销售预约试驾vue
  • 解决PyTorch OOM(内存溢出)问题的有效方法汇总
  • 2025年飞机起落架试验台/起落架保载试验台/起落架磨合试验台厂家优选 - 品牌推荐大师1
  • 2025年陶瓷卫浴品牌推荐:哪些卫浴品牌值得购买,陶瓷卫浴品牌哪家好? - 工业品网
  • 外部表
  • Git commit规范在AI项目中的应用:提升团队协作效率