当前位置: 首页 > 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.jsqmd.com/news/160538/

相关文章:

  • 新能源汽车租赁公司车辆经营方案
  • 精选永辉超市卡回收优质平台推荐 - 京顺回收
  • 使用PyTorch实现手写数字识别MNIST分类
  • 新能源汽车远程控制4G车载TBOX 的功能、技术与应用
  • 2025年公共卫生间隔断包工/包料/安装/预算厂家实力推荐:专业工艺与市场口碑双优之选 - 品牌推荐官
  • 无需人类,超越人类!Meta让软件智能体自我博弈实现了超越人类数据的进化
  • 2025年餐饮桌椅厂家权威推荐榜单:中餐桌/火锅桌椅/电动桌椅/快餐桌椅/烤肉桌椅及烤肉桌源头厂家精选。 - 品牌推荐官
  • 瑞芯微(EASY EAI)RV1126B PWM使用
  • Git reset回退提交:修复错误的PyTorch代码变更
  • 实战化需求驱动:高精度大算力目标追踪无人机集群供应商全景评测 - 品牌2025
  • 2025年信息化基础设施维护品牌企业推荐:看哪家专业可靠? - mypinpai
  • Docker镜像分层原理:优化PyTorch环境构建速度
  • 2025年靠谱的枕式包装机厂家推荐:半自动枕式包装机品牌哪家强? - 工业品网
  • Markdown表情符号增强技术文章可读性
  • 从国际救援到边境防御:解密实时测绘无人机集群的“智”胜之道 - 品牌2025
  • 使用Conda环境导出environment.yml文件共享配置
  • 共享汽车分时租赁短租车载TBOX终端
  • 2025年山西热门系统门窗加盟公司推荐:科典系统门窗代理加盟费多少钱? - 工业设备
  • 智谱GLM-4.7和MiniMax M2.1,国产开源模型双雄,谁是SOTA
  • 博通AI硬件收入激增65%,VMware业务稳健增长
  • PyTorch-CUDA-v2.7镜像更新日志与功能亮点
  • 新能源汽车分时租赁TBOX功能详解
  • 英伟达发布Nemotron 3开源模型助力可扩展多智能体系统
  • Conda create新建独立环境避免PyTorch依赖污染
  • 2025年专精特新中小企业培育推荐公司排名,专精特新中小企业培育选哪家好? - myqiye
  • 冷冻离心机/高速离心机/低速离心机品牌厂家2025年终盘点 - 品牌推荐大师
  • 2026年制造业海外营销代运营公司精选(涵盖 Facebook、LinkedIn 领英、TikTok 、Google营销推广获客解决方案) - 品牌2025
  • 从AI到模拟对抗,网络安全桌面演练今年有了新变化
  • 微信小程序适应机型布局
  • 破局与立新:解锁数字资产交易所全链路开发与运营秘籍