Spec-Zone.ru › PyTorch 2.14

torch.copysign

torch.copysign(input, other, *, out=None) → Tensor

Создает новый тензор с плавающей точкой, содержащий модуль input и знак other для каждого элемента.

outi={−∣inputi∣if otheri≤−0.0∣inputi∣if otheri≥0.0\text{out}_{i} = \begin{cases} -|\text{input}_{i}| & \text{if } \text{other}_{i} \leq -0.0 \\ |\text{input}_{i}| & \text{if } \text{other}_{i} \geq 0.0 \\ \end{cases}

Поддерживает трансляцию к общей форме, а также целочисленные значения и значения с плавающей точкой.

Параметры:
  • input (Tensor) – модули.
  • other (Tensor or Number) – содержит значения, биты знака которых применяются к модулям в input.
Именованные аргументы:

out (Tensor, optional) – выходной тензор.

Пример:

>>> a = torch.randn(5)
>>> a
tensor([-1.2557, -0.0026, -0.5387,  0.4740, -0.9244])
>>> torch.copysign(a, 1)
tensor([1.2557, 0.0026, 0.5387, 0.4740, 0.9244])
>>> a = torch.randn(4, 4)
>>> a
tensor([[ 0.7079,  0.2778, -1.0249,  0.5719],
        [-0.0059, -0.2600, -0.4475, -1.3948],
        [ 0.3667, -0.9567, -2.5757, -0.1751],
        [ 0.2046, -0.0742,  0.2998, -0.1054]])
>>> b = torch.randn(4)
tensor([ 0.2373,  0.3120,  0.3190, -1.1128])
>>> torch.copysign(a, b)
tensor([[ 0.7079,  0.2778,  1.0249, -0.5719],
        [ 0.0059,  0.2600,  0.4475, -1.3948],
        [ 0.3667,  0.9567,  2.5757, -0.1751],
        [ 0.2046,  0.0742,  0.2998, -0.1054]])
>>> a = torch.tensor([1.])
>>> b = torch.tensor([-0.])
>>> torch.copysign(a, b)
tensor([-1.])

Примечание

copysign обрабатывает знаковые нули. Если аргумент other содержит отрицательный ноль (-0), соответствующее выходное значение будет отрицательным.

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

Spec-Zone.ru

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