详解 pytorch 中的 autograd.grad() 函数

我们在用神经网络求解PDE时, 经常要用到输出值对输入变量不是Weights和Biases)求导; 在训练WGAN-GP 时, 也会用到网络对输入变量的求导。 以上两种需求, 均可以用pytorch 中的autograd.grad() 函数实现。

 

autograd.grad(outputs, inputs, grad_outputs=None, retain_graph=None, create_graph=False, only_inputs=True, allow_unused=False)

outputs: 求导的因变量(需要求导的函数)

inputs: 求导的自变量

grad_outputs:  如果 outputs为标量,则grad_outputs=None,也就是说,可以不用写;  如果outputs 是向量,则此参数必须写,不写将会报如下错误:

那么此参数究竟代表着什么呢?

先假设 \large x,y 为一维向量, 即可设自变量因变量分别为  \mathbf{x} =(x_1, x_2, \cdots, x_n)\in \mathbb{R}^n, y = f(\mathbf{x})= (y_1,y_2,\cdots,y_m)\in \mathbb{R}^m, 其对应的 Jacobi 矩阵为

                                                              

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值