让我们考虑一个简单的张量x,并允许定义另一个取决于x并且有多个维度:y = (x, 2x, x^2)。
我怎样才能拥有完整的渐变dy/dx = (1,2,x)?
例如让我们看一下代码:
import torch
from torch.autograd import grad
x = 2 * torch.ones(1)
x.requires_grad = True
y = torch.cat((x, 2*x, x*x))
# dy_dx = ???
Run Code Online (Sandbox Code Playgroud)
这是我迄今为止尝试失败的方法:
>>> dy_dx = grad(y, x, grad_outputs=torch.ones_like(y), create_graph=True)
(tensor([7.], grad_fn=<AddBackward0>),)
>>> dy_dx = grad(y, x, grad_outputs=torch.Tensor([1,0,0]), create_graph=True)
(tensor([1.], grad_fn=<AddBackward0>),)
>>> dy_dx = grad(y, [x,x,x], grad_outputs=torch.eye(3), create_graph=True)
(tensor([7.], grad_fn=<AddBackward0>),)
Run Code Online (Sandbox Code Playgroud)
每次我只得到部分渐变或累积版本......
我知道我可以使用for第二个表达式来使用循环,例如
dy_dx = torch.zeros_like(y)
coord = torch.zeros_like(y)
for i …Run Code Online (Sandbox Code Playgroud) 我目前正在写一份带有许多标签的报告。所有这些都工作得很好(部分、图形、方程……),但表格标签不行。事实上,当我引用任何表格时,pdf 显示了我定义的第一个表格的标签......
\n\n我认为这可能是由于我正在使用的一个软件包造成的,但我没有找到如何解决我的问题。
\n\n\n\n \\documentclass[a4paper,12pt,twoside,openright]{report}\n \\usepackage{array}\n \\usepackage{babel}\n \\usepackage{datatool}\n \\usepackage{environ}\n \\usepackage[T1]{fontenc}\n \\usepackage{fancyhdr}\n \\usepackage[top=0.5cm, bottom=0.5cm, left=2cm, right=2cm]{geometry}\n \\usepackage{graphicx}\n \\usepackage{enumitem}\n \\usepackage[\n bookmarks = true,% % Signets\n bookmarksnumbered = true,% % Signets num\xc3\xa9rot\xc3\xa9s%\n bookmarksopen = true,% % Signets ouverts\n colorlinks = true,% % Liens en couleur : true ou false\n urlcolor = blue,% % Couleur des liens externes\n linkcolor = black,% % Couleur des liens internes\n citecolor = black,% % Couleur des citations\n ]{hyperref}% \n \\usepackage{ifthen}\n \\usepackage{indentfirst}\n \\usepackage[utf8]{inputenc}\n \\usepackage{lmodern}\n \\usepackage{amsmath}\n \\usepackage{amsfonts}\n \\usepackage{amssymb}\n …Run Code Online (Sandbox Code Playgroud)