Spec-Zone.ru › PyTorch 2.14

torch.autograd.gradcheck.gradgradcheck

torch.autograd.gradcheck.gradgradcheck(func, inputs, grad_outputs=None, *, eps=1e-06, atol=1e-05, rtol=0.001, gen_non_contig_grad_outputs=False, raise_exception=True, nondet_tol=0.0, check_undefined_grad=True, check_grad_dtypes=False, check_batched_grad=False, check_fwd_over_rev=False, check_rev_over_rev=True, fast_mode=False, masked=False) [исходный код]

Проверяет градиенты градиентов, вычисленные с помощью малых конечных разностей, сравнивая их с аналитическими градиентами относительно тензоров в inputs и grad_outputs, имеющих тип с плавающей запятой или комплексный тип и с requires_grad=True.

Эта функция проверяет, что обратное распространение через градиенты, вычисленные для заданного grad_outputs, выполняется корректно.

Для сравнения численных и аналитических градиентов используется allclose().

Примечание

Значения по умолчанию рассчитаны на input и grad_outputs двойной точности. Проверка, скорее всего, завершится ошибкой, если они имеют меньшую точность, например FloatTensor.

Предупреждение

Если какой-либо проверяемый тензор в input и grad_outputs имеет перекрывающуюся память, то есть разные индексы указывают на один и тот же адрес памяти (например, в результате torch.Tensor.expand()), эта проверка, скорее всего, завершится ошибкой, поскольку численные градиенты, вычисленные возмущением отдельных элементов, будут изменять значения всех остальных элементов с тем же адресом памяти.

Параметры:
  • func (функция) – функция Python, принимающая тензоры на вход и возвращающая тензор или кортеж тензоров
  • inputs (tuple of Tensor or Tensor) – входные данные функции
  • grad_outputs (tuple of [Tensor or None] or Tensor, optional) – градиенты относительно выходных данных функции.
  • eps (float, optional) – величина возмущения для конечных разностей
  • atol (float, optional) – абсолютный допуск
  • rtol (float, optional) – относительный допуск
  • gen_non_contig_grad_outputs (bool, optional) – если grad_outputs имеет значение None, а gen_non_contig_grad_outputs имеет значение True, случайно сгенерированные выходные градиенты будут несмежными
  • raise_exception (bool, optional) – определяет, следует ли вызывать исключение при неудачной проверке. Исключение содержит дополнительную информацию о точной причине сбоя. Это полезно при отладке проверок градиентов.
  • nondet_tol (float, optional) – допуск для недетерминизма. При передаче одинаковых входных данных через дифференцирование результаты должны либо точно совпадать (по умолчанию 0.0), либо укладываться в этот допуск. Обратите внимание: даже небольшая степень недетерминизма градиента приведёт к большей погрешности второй производной.
  • check_undefined_grad (bool, optional) – если True, проверяет, поддерживаются ли неопределённые градиенты выходных данных и обрабатываются ли они как нули
  • check_batched_grad (bool, optional) – если True, проверяет возможность вычисления пакетных градиентов с использованием экспериментальной поддержки vmap. По умолчанию False.
  • fast_mode (bool, optional) – если True, выполняет более быструю реализацию gradgradcheck, которая не вычисляет всю матрицу Якоби
  • masked (bool, optional) – если True, градиенты неопределённых элементов разреженных тензоров игнорируются (по умолчанию False).
Возвращает:

True, если все разности удовлетворяют условию allclose

Тип возвращаемого значения:

bool

© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.autograd.gradcheck.gradgradcheck.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API