torch.Tensor.backward
-
Tensor.backward(gradient=None, retain_graph=None, create_graph=False, inputs=None)[source] -
Вычисляет градиент текущего тензора относительно узлов графа.
Граф дифференцируется с использованием правила цепи. Если тензор не является скалярным (т.е. его данные содержат более одного элемента) и требует градиента, функция дополнительно требует указания
gradient. Он должен быть тензором соответствующего типа и расположения, содержащим градиент дифференцируемой функции относительноself.Эта функция накапливает градиенты в узлах — возможно, потребуется обнулить
.gradатрибуты или установить их вNoneперед её вызовом. Подробнее о расположении памяти накапливаемых градиентов см. в По умолчанию раскладки градиентов.Примечание
Если вы выполняете какие-либо операции вперёд, создаёте
gradient, и/или вызываетеbackwardв контексте потока CUDA, указанном пользователем, см. Семантика потоков обратных проходов.Примечание
Когда
inputsпредоставлены, и данный вход не является листом, текущая реализация вызовет его grad_fn (хотя строго говоря, это не строго необходимо для получения этих градиентов). Это деталь реализации, на которой пользователь не должен полагаться. Подробнее см. https://github.com/pytorch/pytorch/pull/60521#issuecomment-867061780- Параметры:
-
-
gradient (Tensor или None) – Градиент по отношению к тензору. Если это тензор, он будет автоматически преобразован в тензор, который не требует градиента, если
create_graphравно True. Значения None могут быть указаны для скалярных тензоров или тензоров, которые не требуют градиента. Если значение None допустимо, этот аргумент необязателен. -
retain_graph (bool, необязательно) – Если
False, граф, используемый для вычисления градиентов, будет освобождён. Обратите внимание, что в подавляющем большинстве случаев установление этого параметра в значение True не требуется и часто может быть обойдено более эффективным способом. По умолчанию принимает значениеcreate_graph. -
create_graph (bool, необязательно) – Если
True, будет построен граф производной, позволяющий вычислять продукты производных высших порядков. По умолчаниюFalse. -
inputs (последовательность тензоров) – Входы, относительно которых градиент будет накапливаться в
.grad. Все остальные тензоры будут игнорироваться. Если не указаны, градиент накапливается во все узловые тензоры, которые использовались для вычисления attr::tensors.
-
gradient (Tensor или None) – Градиент по отношению к тензору. Если это тензор, он будет автоматически преобразован в тензор, который не требует градиента, если
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/1.13/generated/torch.Tensor.backward.html