《昇思25天学习打卡营第6天|07-函数式自动微分》

在这里插入图片描述

知识补充:

binary_cross_entropy_with_logits():

二元交叉熵(Binary cross entropy)是二分类中常用的损失函数,它可以衡量两个概率分布的距离,二元交叉熵越小,分布越相似,其公式如下:
在这里插入图片描述
本章节中,我们首先定义了:

	x = ops.ones(5, mindspore.float32)  # input tensor
	y = ops.zeros(3, mindspore.float32)  # expected output
    w = Parameter(Tensor(np.random.randn(5, 3), mindspore.float32), name='w') # weight
	b = Parameter(Tensor(np.random.randn(3,), mindspore.float32), name='b') # bias

grad()

mindspore.grad()函数,自动求导:
grad()两个参数:
fn : 待求导的函数。
grad_position : 指定求导输入位置的索引。
如图示:
在这里插入图片描述
(2,3)位置对应w,b。

Stop Gradient

ops.stop_gradient()函数可以阶段一个参数,防止其对导数有影响,如图示:
在这里插入图片描述
此时,z对function的求导是无影响的。

Auxiliary data

Auxiliary data意为辅助数据,是函数除第一个输出项外的其他输出。通常我们会将函数的loss设置为函数的第一个输出,其他的输出即为辅助数据。

grad 和 value_and_grad 提供 has_aux 参数,当其设置为 True 时,可以自动实现前文手动添加 stop_gradient的功能,满足返回辅助数据的同时不影响梯度计算的效果。
如图示:
在这里插入图片描述
可以代替stop_gradient()功能,让代码更整洁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值