自动求导

https://zh.d2l.ai/chapter_preliminaries/autograd.html

1 Like

Blockquote
实际中,根据我们设计的模型,系统会构建一个计算图(computational graph), 来跟踪计算是哪些数据通过哪些操作组合起来产生输出…
Blockquote

一致搞不懂什么是模型,在简单实例的代码中试图寻找模型的定义,还是看不明白,能简单解释以下吗?
谢谢

所以二阶导数怎么代码实现 :smile: :kissing_smiling_eyes:

如果a输入一个标量0,f(a)不会死循环吗?

自动微分能支持的边界是什么?

当我们自己设计一个模型的时候, 比如涉及到网络架构、激活函数、优化器这些的创新,自动微分(tf or troch or mxnet)难道全部支持吗?还是有些限定?

输入一个标量应该会报错吧,你看代码,while 语句要判断b的l2 norm 是否小于1000,一个 标量怎么可能有norm。执行这个语句的时候应该就报错了。

标量的范数就是其绝对值啊,当然可以有norm

依样画葫芦绘制的第六题
import torch

import d2l.torch as d2l

x = torch.linspace(1, 8, 60, requires_grad=True) # 生成 60 个从 1 到 7 之间的均匀分布的点

y = torch.sin(x)

y.sum().backward()

绘图必须分离转化为np

x_np = x.detach().numpy()

y_np = y.detach().numpy()

x_grad_np = x.grad.detach().numpy()

d2l.plot(x_np, [y_np, x_grad_np], ‘x’, ‘sin(x)’, legend=[‘sin(x)’, ‘sin(x) grad’])