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
- Тип возвращаемого значения:
© 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