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

做网站 找风投包头市建设局网站

做网站 找风投,包头市建设局网站,网站做404页面怎么做,wordpress在线点播函数式自动微分 相关前置知识复习 深度学习的重点之一是神经网络。而神经网络很重要的一环是反向传播算法#xff0c;这个算法用于调整神经网络的权重。 反向传播算法 这里举例说明反向传播在做什么。 假设你是一个学生#xff0c;一次考试过后#xff0c;你收到了一份老…函数式自动微分 相关前置知识复习 深度学习的重点之一是神经网络。而神经网络很重要的一环是反向传播算法这个算法用于调整神经网络的权重。 反向传播算法 这里举例说明反向传播在做什么。 假设你是一个学生一次考试过后你收到了一份老师打分后的试卷。 前向传播就是考试的过程你通过自己学习的知识来解答试卷上的每个问题。这就是用神经网络的权重已有的知识推理解答输入数据问题得到预测结果最终的答卷。 计算误差是你评估自己答案和标准答案的差距。这里在神经网络中是使用损失函数来衡量预测结果和实际结果之间的差距。 反向传播是分析错误的问题分析具体是哪个知识点没掌握清楚再去针对性的学习对应的知识加强弱项。这里在申请网络中就是使用误差来反向调整神经网络中的权重。 反向传播的步骤是 前向传播输入数据通过神经网络计算出预测结果计算误差通过神经网络的预测结果和实际结果计算损失函数反向传播将误差从输出层向输入层反向传播计算每一层的误差。调整权重根据计算出的误差使用优化算法如梯度下降调整每一层的权重以减少误差。 链式法则 链式法则Chain Rule是微积分的重要概念用于计算复合函数的导数。这是计算梯度的基础。简单来说链式法则的基本思想是将复杂的过程分解成多个简单的部分再将各部分的结果组合起来得到总结果。 假设我们有两个函数 f f f和 g g g并且它们是复合的即 y f ( g ( x ) ) yf(g(x)) yf(g(x))。根据链式法则复合函数 y y y 对 x x x 的导数可以表示为 d y d x d y d g ⋅ d g d x \frac{d_y}{d_x} \frac{d_y}{d_g} \cdot \frac{d_g}{d_x} dx​dy​​dg​dy​​⋅dx​dg​​ 为什么要在神经网络这里强调链式法则呢 举个小例子。想象神经网络的结构第一层传给第二层第二层传给第三层每一层的输出都是后一层的输入整个就是一条链。通过最后一层的输出计算损失函数对最终输出的导数再根据链式法则可以逐层往前推导梯度将误差从输出层传递回输入层计算出每个参数的梯度再进行参数更新完成反向传递。 自动微分 上面阐述了神经网络的误差需要通过链式法则传递从而计算出每个参数的梯度。自动微分利用链式法则自动计算反向传播的梯度也就是将梯度计算过程变得自动化了。 构建模型 以下我们构建一个简单的线性模型来介绍如何进行函数式自动微分。 普通的线性模型 y w × b b y w \times b b yw×bb 输入x输出y通过调整w和b参数来优化预测。 # 环境配置 import numpy as np import mindspore from mindspore import nn from mindspore import ops from mindspore import Tensor, Parameterx ops.ones(5, mindspore.float32) # 形状为5的全1输入 y ops.zeros(3, mindspore.float32) # 形状为3的全0输出 w Parameter(Tensor(np.random.randn(5, 3), mindspore.float32), namew) # 线性函数的权重 b Parameter(Tensor(np.random.randn(3,), mindspore.float32), nameb) # 线性函数的偏差 def function(x, y, w, b):z ops.matmul(x, w) bloss ops.binary_cross_entropy_with_logits(z, y, ops.ones_like(z), ops.ones_like(z))return loss解读一下这段代码 z是线性函数的组合ops.matmul(x, w) 是输入x和权重w的矩阵乘法然后再将偏置向量b加入到结果中。 这里使用binary_cross_entropy_with_logits作为损失函数。这个函数计算了预测值和目标值之间的二值交叉熵损失。 通过 f u n c t i o n ( x , y , w , b ) function(x,y,w,b) function(x,y,w,b)可以计算到loss值。 模型参数优化 为了优化模型参数需要计算对两个参数的导数。 ∂ loss ⁡ ∂ w \frac{\partial \operatorname{loss}}{\partial w} ∂w∂loss​ ∂ loss ⁡ ∂ b \frac{\partial \operatorname{loss}}{\partial b} ∂b∂loss​ 这里使用mindspore.grad函数来获得function的微分函数用以计算梯度。 grad函数包括两个参数 fn待求导的函数。grad_position需要求导的参数的索引。 function的入参是x,y,w,b, 我们需要对w,b求导。w,b在入参中的索引是23。因此grad_postion为23可得function的微分函数 grad_fn mindspore.grad(function, (2, 3))停止梯度 一般来讲只会求loss对参数的导数因此只需要输出loss就可以。但如果要求的话也可以输出多个loss以外的参数。在我们的例子里也就是在function的函数中增加除了loss之外的输出值。 def function_with_logits(x, y, w, b):z ops.matmul(x, w) bloss ops.binary_cross_entropy_with_logits(z, y, ops.ones_like(z), ops.ones_like(z))return loss, zgrad_fn mindspore.grad(function_with_logits, (2, 3)) grads grad_fn(x, y, w, b)这里增加了对z的输出。在后续grad_fn调用时z也会参与到梯度计算对w和b的梯度结果造成影响。 stop gradient用以阻止某些张量的梯度计算。通俗的说当对张量 z 应用 Stop Gradient 操作后在反向传播过程中其梯度会被置零从而不会影响之前的计算。具体操作如下 def function_stop_gradient(x, y, w, b):z ops.matmul(x, w) bloss ops.binary_cross_entropy_with_logits(z, y, ops.ones_like(z), ops.ones_like(z))return loss, ops.stop_gradient(z)这样的函数定义下函数依然输出z但是对z进行了阻断不会影响到后续梯度计算是对其他参数(w,b)更新。 Auxiliary data Auxiliary data意思是辅助数据是函数第一个输出以外的其他输出。一般loss是第一个输出其他都是Auxiliary data。 has_aux指具有辅助数据可以在grad函数中设置就能自动将辅助数据添加stop gradient操作。 grad_fn mindspore.grad(function_with_logits, (2, 3), has_auxTrue)神经网络实现自动微分 上面的操作是自己手动搭建了一个模型。在之前的章节中我们使用nn.Cell构建了神经网络现在来看看如何在Cell模型中如何实现函数式自动微分。 初始化模型 # 模型初始化定义参数w和b并构建模型 class Network(nn.Cell):def __init__(self):super().__init__()self.w wself.b bdef construct(self, x):z ops.matmul(x, self.w) self.breturn z# 实例化模型 model Network() # 定义损失函数 loss_fn nn.BCEWithLogitsLoss() # 定义前向计算函数 def forward_fn(x, y):z model(x)loss loss_fn(z, y)return loss # 上面的步骤之前的文章已经介绍过了。这里我们使用value_and_grad接口获得微分函数。w、b两个参数已经是网络属性的一部分了因此不需要再次进行指定了而是使用model.trainable_params()获取可求导的参数。 grad_fn mindspore.value_and_grad(forward_fn, None, weightsmodel.trainable_params())总结 本章使用了两种方式实现了自动微分也就是梯度计算。一种是手动构建模型一种使用nn.Cell搭建的神经网络。此外本节也复习了一些深度学习的基础知识 打卡凭证
http://www.hkea.cn/news/14275937/

相关文章:

  • 做的最好的门户网站心悦俱乐部官方网站怎么做任务
  • 电脑路由器做网站服务器网站建
  • 百度网页游戏排行榜seo排名怎么样
  • 阿里网站怎样做seo中国外贸人才网
  • 外包网站该怎么做帐网站搜索页面设计
  • 网站建设在哪能看建设导航网站
  • 商城网站开发需要多少钱大连网龙
  • 惠州专业网站制作公司免费开通网站
  • 网站制作南宁海口企业网站建设制作哪家专业
  • 怎么修改网站模版邢台网站制作哪家强
  • 局网站建设意见个人备案的网站名称
  • 可以用什么做网站登录页面免费企业网站程序asp
  • wordpress包下载失败杭州江干区抖音seo哪里有
  • 东莞常平医院网站建设福建网站制作
  • 软件开发和网站建设的区别深圳做网站价格
  • 专业网站推广服务咨询网络推广渠道公司
  • 建设网站属于什么费用做电力招聘的有哪些网站
  • php建站模板营销网站建设创意
  • 企业门户网站平台建设招标采购文件好的 做网站的软件公司
  • 彩票交易网站开发怎么提升搜狗网站排名
  • 单产品网站建设优秀公司网站
  • 织梦生成网站地图wordpress教育培训模板
  • 北大青鸟网站建设课程体育新闻报道
  • 捷信做单官方网站在什么地方可以接到做网站的活
  • 网站建设类论文在人才网站做业务
  • wordpress邮件注册通知广东网站营销seo方案
  • 网站页面链接结构网站网页模板
  • 电子商务与网站建设论文专业零基础网站建设教学公司
  • 文化公司网站建设重庆企业年报网上申报入口
  • 图片类网站如何做优化网站排名软件下载