PyTorch第五章

本文详细解释了前向传播过程中的损失函数计算方法,包括均值求解的原理,以及梯度下降的链式求导和权重更新。同时介绍了张量的grad属性和requires_grad设置,以及no_grad模式在梯度更新中的应用。最后提及了可视化在理解过程中的辅助作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前向传播

损失函数 def loss(o,t):

                        diff=(o-t)**2

                        return diff.mean()??为什么求均值

梯度下降db dw:  db=dL/dtp  * dtp/db  链式求导

更新w=w-Adw  b=b-Adw

def loss(o,t):

        diff=(o-t)**2

        return diff.mean()

def dloss(o,t):

        ddiff=2*(0-t)/o.size(0)

        return ddiff

def dmodel_dw(i,w,d):

        return i

def dmodel_db(i,w,b):

        return 1

def grad(i,o,t,w,b):

        dloss_do=ddiff(o,t)

        dw=dloss_do * dmodel_dw

        db=dloss_do * dmodel_db

        return torch.stack([dloss_dw.sum(),dloss_db.sum()])

        

每个tensor张量都存在grad属性:parames=torch.tensor([1.0,0.0],requires_grad=True)

此时parames将自动追溯所有由parames运算得到的张量,并对所有得到的张量进行求导,将得到的导数值自动填充到parames的grad属性中

no_grad:此模块下的张量不进行梯度更新,即requires_grad=Flase

可视化:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值