torch.special
Модуль torch.special, смоделированный по модулю special из SciPy special.
Функции
-
torch.special.airy_ai(input, *, out=None) → Tensor -
Функция Эйри .
-
torch.special.bessel_j0(input, *, out=None) → Tensor -
Функция Бесселя первого рода порядка .
-
torch.special.bessel_j1(input, *, out=None) → Tensor -
Функция Бесселя первого рода порядка .
-
torch.special.digamma(input, *, out=None) → Tensor -
Вычисляет логарифмическую производную гамма-функции на
input.- Параметры:
-
input (Тензор) – тензор для вычисления функции дигаммы.
- Ключевые аргументы:
-
out (Тензор, необязательно) – выходной тензор.
Примечание
Эта функция аналогична функции SciPy
scipy.special.digamma.Примечание
Начиная с PyTorch 1.8, функция дигаммы возвращает
-Infдля0. Раньше она возвращалаNaNдля0.Пример:
>>> a = torch.tensor([1, 0.5]) >>> torch.special.digamma(a) tensor([-0.5772, -1.9635])
-
torch.special.entr(input, *, out=None) → Tensor -
Вычисляет энтропию на
input(как определено ниже), поэлементно.- Параметры:
-
input (Тензор) – входной тензор.
- Ключевые аргументы:
-
out (Тензор, необязательно) – выходной тензор.
- Пример::
-
>>> a = torch.arange(-0.5, 1, 0.5) >>> a tensor([-0.5000, 0.0000, 0.5000]) >>> torch.special.entr(a) tensor([ -inf, 0.0000, 0.3466])
-
torch.special.erf(input, *, out=None) → Tensor -
Вычисляет функцию ошибки для
input. Функция ошибки определяется следующим образом:- Параметры:
-
input (Тензор) – входной тензор.
- Ключевые аргументы:
-
out (Тензор, необязательно) – выходной тензор.
Пример:
>>> torch.special.erf(torch.tensor([0, -1., 10.])) tensor([ 0.0000, -0.8427, 1.0000])
-
torch.special.erfc(input, *, out=None) → Tensor -
Вычисляет дополнительную функцию ошибки для
input. Дополнительная функция ошибки определяется следующим образом:- Параметры:
-
input (Тензор) – входной тензор.
- Ключевые аргументы:
-
out (Тензор, необязательно) – выходной тензор.
Пример:
>>> torch.special.erfc(torch.tensor([0, -1., 10.])) tensor([ 1.0000, 1.8427, 0.0000])
-
torch.special.erfcx(input, *, out=None) → Tensor -
Вычисляет масштабированную дополнительную функцию ошибок для каждого элемента
input. Масштабированная дополнительная функция ошибок определяется следующим образом:- Параметры:
-
input (Тензор) – входной тензор.
- Ключевые аргументы:
-
out (Тензор, необязательно) – выходной тензор.
Пример:
>>> torch.special.erfcx(torch.tensor([0, -1., 10.])) tensor([ 1.0000, 5.0090, 0.0561])
-
torch.special.erfinv(input, *, out=None) → Tensor -
Вычисляет обратную функцию ошибок для
input. Обратная функция ошибок определена в диапазоне как:- Параметры:
-
input (Тензор) – входной тензор.
- Ключевые аргументы:
-
out (Тензор, необязательно) – выходной тензор.
Пример:
>>> torch.special.erfinv(torch.tensor([0, 0.5, -1.])) tensor([ 0.0000, 0.4769, -inf])
-
torch.special.exp2(input, *, out=None) → Tensor -
Вычисляет функцию экспоненты по основанию два для
input.- Параметры:
-
input (Тензор) – входной тензор.
- Ключевые аргументы:
-
out (Тензор, необязательно) – выходной тензор.
Пример:
>>> torch.special.exp2(torch.tensor([0, math.log2(2.), 3, 4])) tensor([ 1., 2., 8., 16.])
-
torch.special.expit(input, *, out=None) → Tensor -
Вычисляет expit (также известную как логистическую сигмоиду) элементов
input.- Параметры:
-
input (Тензор) – входной тензор.
- Ключевые аргументы:
-
out (Тензор, необязательно) – выходной тензор.
Пример:
>>> t = torch.randn(4) >>> t tensor([ 0.9213, 1.0887, -0.8858, -1.7683]) >>> torch.special.expit(t) tensor([ 0.7153, 0.7481, 0.2920, 0.1458])
-
torch.special.expm1(input, *, out=None) → Tensor -
Вычисляет экспоненту элементов минус 1 для
input.Примечание
Эта функция обеспечивает большую точность, чем exp(x) - 1 для малых значений x.
- Параметры:
-
input (Тензор) – входной тензор.
- Ключевые аргументы:
-
out (Тензор, необязательно) – выходной тензор.
Пример:
>>> torch.special.expm1(torch.tensor([0, math.log(2.)])) tensor([ 0., 1.])
-
torch.special.gammainc(input, other, *, out=None) → Tensor -
Вычисляет регламентированную нижнюю неполную гамма-функцию:
где и являются слабо положительными, и по крайней мере одно из них строго положительно. Если оба равны нулю или любое из них отрицательно, то . в уравнении выше — это гамма-функция,
См.
torch.special.gammaincc()иtorch.special.gammaln()для связанных функций.Поддерживает распространение на общую форму и плавающие входные данные.
Примечание
Обратное распространение относительно
inputпока не поддерживается. Пожалуйста, откройте вопрос на Github PyTorch, чтобы запросить это.- Parameters:
- Keyword Arguments:
-
out (Tensor, optional) – выходной тензор.
Пример:
>>> a1 = torch.tensor([4.0]) >>> a2 = torch.tensor([3.0, 4.0, 5.0]) >>> a = torch.special.gammaincc(a1, a2) tensor([0.3528, 0.5665, 0.7350]) tensor([0.3528, 0.5665, 0.7350]) >>> b = torch.special.gammainc(a1, a2) + torch.special.gammaincc(a1, a2) tensor([1., 1., 1.])
-
torch.special.gammaincc(input, other, *, out=None) → Tensor -
Вычисляет регламентированную верхнюю неполную гамма-функцию:
где и являются слабо положительными, и по крайней мере одно из них строго положительно. Если оба равны нулю или любое из них отрицательно, то .
-
torch.special.gammaln(input, *, out=None) → Tensor -
Вычисляет натуральный логарифм абсолютного значения гамма-функции по
input.
-
torch.special.i0(input, *, out=None) → Tensor -
Вычисляет модифицированную функцию Бесселя нулевого порядка первого рода для каждого элемента
input.- Параметры:
-
input (Tensor) – входной тензор
- Аргументы по ключевым словам:
-
out (Tensor, необязательно) – выходной тензор.
Пример:
>>> torch.i0(torch.arange(5, dtype=torch.float32)) tensor([ 1.0000, 1.2661, 2.2796, 4.8808, 11.3019])
-
torch.special.i0e(input, *, out=None) → Tensor -
Вычисляет экспоненциально масштабированную модифицированную функцию Бесселя нулевого порядка первого рода (как определено ниже) для каждого элемента
input.- Параметры:
-
input (Tensor) – входной тензор.
- Аргументы по ключевым словам:
-
out (Tensor, необязательно) – выходной тензор.
- Пример::
-
>>> torch.special.i0e(torch.arange(5, dtype=torch.float32)) tensor([1.0000, 0.4658, 0.3085, 0.2430, 0.2070])
-
torch.special.i1(input, *, out=None) → Tensor -
Вычисляет модифицированную функцию Бесселя первого порядка первого рода (как определено ниже) для каждого элемента
input.- Параметры:
-
input (Tensor) – входной тензор.
- Аргументы по ключевым словам:
-
out (Tensor, необязательно) – выходной тензор.
- Пример::
-
>>> torch.special.i1(torch.arange(5, dtype=torch.float32)) tensor([0.0000, 0.5652, 1.5906, 3.9534, 9.7595])
-
torch.special.i1e(input, *, out=None) → Tensor -
Вычисляет экспоненциально масштабированную модифицированную функцию Бесселя первого порядка первого рода (как определено ниже) для каждого элемента
input.- Параметры:
-
input (Tensor) – входной тензор.
- Аргументы по ключевым словам:
-
out (Tensor, необязательно) – выходной тензор.
- Пример::
-
>>> torch.special.i1e(torch.arange(5, dtype=torch.float32)) tensor([0.0000, 0.2079, 0.2153, 0.1968, 0.1788])
-
torch.special.log1p(input, *, out=None) → Tensor -
Псевдоним для
torch.log1p().
-
torch.special.log_ndtr(input, *, out=None) → Tensor -
Вычисляет логарифм площади под стандартной гауссовой функцией плотности вероятности, интегрированной от минус бесконечности до
input, поэлементно.- Параметры:
-
input (Tensor) – входной тензор.
- Аргументы по ключевым словам:
-
out (Tensor, необязательно) – выходной тензор.
- Пример::
-
>>> torch.special.log_ndtr(torch.tensor([-3., -2, -1, 0, 1, 2, 3])) tensor([-6.6077 -3.7832 -1.841 -0.6931 -0.1728 -0.023 -0.0014])
-
torch.special.log_softmax(input, dim, *, dtype=None) → Tensor -
Вычисляет softmax, за которым следует логарифм.
Хотя математически эквивалентно log(softmax(x)), выполнение этих двух операций по отдельности медленнее и числово нестабильно. Эта функция вычисляется как:
- Параметры:
-
- input (Тензор) – входной тензор
- dim (целое число) – Измерение, по которому будет вычислено log_softmax.
-
dtype (
torch.dtype, необязательно) – желаемый тип данных возвращаемого тензора. Если указан, входной тензор преобразуется кdtypeперед выполнением операции. Это полезно для предотвращения переполнения типов данных. По умолчанию: None.
- Пример::
-
>>> t = torch.ones(2, 2) >>> torch.special.log_softmax(t, 0) tensor([[-0.6931, -0.6931], [-0.6931, -0.6931]])
-
torch.special.logit(input, eps=None, *, out=None) → Tensor -
Возвращает новый тензор с логарифмом вероятности элементов
input.inputограничивается значениями от [eps, 1 - eps], когда eps не None. Когда eps None иinput< 0 илиinput> 1, функция вернёт NaN.- Параметры:
-
- input (Тензор) – входной тензор.
-
eps (вещественное число, необязательно) – epsilon для ограничения ввода. По умолчанию:
None
- Ключевые аргументы:
-
out (Тензор, необязательно) – выходной тензор.
Пример:
>>> a = torch.rand(5) >>> a tensor([0.2796, 0.9331, 0.6486, 0.1523, 0.6516]) >>> torch.special.logit(a, eps=1e-6) tensor([-0.9466, 2.6352, 0.6131, -1.7169, 0.6261])
-
torch.special.logsumexp(input, dim, keepdim=False, *, out=None) -
Псевдоним для
torch.logsumexp().
-
torch.special.multigammaln(input, p, *, out=None) → Tensor -
Вычисляет многомерную логарифмическую гамма-функцию с размерностью поэлементно, задаваемую
где и - гамма-функция.
Все элементы должны быть больше , в противном случае поведение не определено.
- Параметры:
-
- input (Тензор) – тензор для вычисления многомерной логарифмической гамма-функции
- p (целое число) – число измерений
- Ключевые аргументы:
-
out (Тензор, необязательно) – выходной тензор.
Пример:
>>> a = torch.empty(2, 3).uniform_(1, 2) >>> a tensor([[1.6835, 1.8474, 1.1929], [1.0475, 1.7162, 1.4180]]) >>> torch.special.multigammaln(a, 2) tensor([[0.3928, 0.4007, 0.7586], [1.0311, 0.3901, 0.5049]])
-
torch.special.ndtr(input, *, out=None) → Tensor -
Вычисляет площадь под стандартной гауссовой функцией плотности вероятности, интегрированной от минус бесконечности до
input, поэлементно.- Параметры:
-
input (Тензор) – входной тензор.
- Ключевые аргументы:
-
out (Тензор, необязательно) – выходной тензор.
- Пример::
-
>>> torch.special.ndtr(torch.tensor([-3., -2, -1, 0, 1, 2, 3])) tensor([0.0013, 0.0228, 0.1587, 0.5000, 0.8413, 0.9772, 0.9987])
-
torch.special.ndtri(input, *, out=None) → Tensor -
Вычисляет аргумент x, для которого площадь под кривой функции плотности гауссовой вероятности (интегрированная от минус бесконечности до x) равна
input, поэлементно.Примечание
Также известно как квантильная функция для нормального распределения.
- Параметры:
-
input (Тензор) – входной тензор.
- Ключевые аргументы:
-
out (Тензор, необязательно) – выходной тензор.
- Пример::
-
>>> torch.special.ndtri(torch.tensor([0, 0.25, 0.5, 0.75, 1])) tensor([ -inf, -0.6745, 0.0000, 0.6745, inf])
-
torch.special.polygamma(n, input, *, out=None) → Tensor -
Вычисляет производную функции дигамма на
input. называется порядком полигаммы.Примечание
Эта функция реализована только для неотрицательных целых чисел .
- Параметры:
- Ключевые аргументы:
-
out (Тензор, необязательно) – выходной тензор.
- Пример::
-
>>> a = torch.tensor([1, 0.5]) >>> torch.special.polygamma(1, a) tensor([1.64493, 4.9348]) >>> torch.special.polygamma(2, a) tensor([ -2.4041, -16.8288]) >>> torch.special.polygamma(3, a) tensor([ 6.4939, 97.4091]) >>> torch.special.polygamma(4, a) tensor([ -24.8863, -771.4742])
-
torch.special.psi(input, *, out=None) → Tensor -
Псевдоним для
torch.special.digamma().
-
torch.special.round(input, *, out=None) → Tensor -
Псевдоним для
torch.round().
-
torch.special.scaled_modified_bessel_k0(input, *, out=None) → Tensor -
Масштабированная модифицированная функция Бесселя второго рода порядка .
-
torch.special.scaled_modified_bessel_k1(input, *, out=None) → Tensor -
Масштабированная модифицированная функция Бесселя второго рода порядка .
-
torch.special.sinc(input, *, out=None) → Tensor -
Вычисляет нормированную функцию sinc от
input.- Параметры:
-
input (Тензор) – входной тензор.
- Ключевые аргументы:
-
out (Тензор, необязательно) – выходной тензор.
- Пример::
-
>>> t = torch.randn(4) >>> t tensor([ 0.2252, -0.2948, 1.0267, -1.1566]) >>> torch.special.sinc(t) tensor([ 0.9186, 0.8631, -0.0259, -0.1300])
-
torch.special.softmax(input, dim, *, dtype=None) → Tensor -
Вычисляет функцию softmax.
Softmax определяется как:
Он применяется ко всем срезам вдоль dim и будет перемасштабировать их так, что элементы находятся в диапазоне
[0, 1]и суммируются до 1.- Параметры:
-
- input (Тензор) – вход
- dim (целое) – Измерение, по которому будет вычислена softmax.
-
dtype (
torch.dtype, необязательно) – желаемый тип данных возвращаемого тензора. Если указано, входной тензор приводится к типуdtypeперед выполнением операции. Это полезно для предотвращения переполнения типов данных. По умолчанию: None.
- Примеры::
-
>>> t = torch.ones(2, 2) >>> torch.special.softmax(t, 0) tensor([[0.5000, 0.5000], [0.5000, 0.5000]])
-
torch.special.spherical_bessel_j0(input, *, out=None) → Tensor -
Сферическая функция Бесселя первого рода порядка .
-
torch.special.xlog1py(input, other, *, out=None) → Tensor -
Вычисляет
input * log1p(other)со следующими случаями.Аналогично SciPy's
scipy.special.xlog1py.Примечание
По крайней мере один из
inputилиotherдолжен быть тензором.- Ключевые аргументы:
-
out (Тензор, необязательно) – выходной тензор.
Пример:
>>> x = torch.zeros(5,) >>> y = torch.tensor([-1, 0, 1, float('inf'), float('nan')]) >>> torch.special.xlog1py(x, y) tensor([0., 0., 0., 0., nan]) >>> x = torch.tensor([1, 2, 3]) >>> y = torch.tensor([3, 2, 1]) >>> torch.special.xlog1py(x, y) tensor([1.3863, 2.1972, 2.0794]) >>> torch.special.xlog1py(x, 4) tensor([1.6094, 3.2189, 4.8283]) >>> torch.special.xlog1py(2, y) tensor([2.7726, 2.1972, 1.3863])
-
torch.special.xlogy(input, other, *, out=None) → Tensor -
Вычисляет
input * log(other)со следующими случаями.Аналогично SciPy’s
scipy.special.xlogy.Примечание
По крайней мере один из
inputилиotherдолжен быть тензором.- Ключевые аргументы:
-
out (Тензор, необязательно) – выходной тензор.
Пример:
>>> x = torch.zeros(5,) >>> y = torch.tensor([-1, 0, 1, float('inf'), float('nan')]) >>> torch.special.xlogy(x, y) tensor([0., 0., 0., 0., nan]) >>> x = torch.tensor([1, 2, 3]) >>> y = torch.tensor([3, 2, 1]) >>> torch.special.xlogy(x, y) tensor([1.0986, 1.3863, 0.0000]) >>> torch.special.xlogy(x, 4) tensor([1.3863, 2.7726, 4.1589]) >>> torch.special.xlogy(2, y) tensor([2.1972, 1.3863, 0.0000])
-
torch.special.zeta(input, other, *, out=None) → Tensor -
Вычисляет дзета-функцию Хёрвита, поэлементно.
- Параметры:
Примечание
Функция Римана дзета соответствует случаю, когда
q = 1- Ключевые аргументы:
-
out (Тензор, необязательно) – выходной тензор.
- Пример::
-
>>> x = torch.tensor([2., 4.]) >>> torch.special.zeta(x, 1) tensor([1.6449, 1.0823]) >>> torch.special.zeta(x, torch.tensor([1., 2.])) tensor([1.6449, 0.0823]) >>> torch.special.zeta(2, torch.tensor([1., 2.])) tensor([1.6449, 0.6449])
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/1.13/special.html