Функция trunc
Функция trunc возвращает новый тензор,
в котором для каждого элемента исходного тензора
дробная часть отбрасывается, а целая часть
сохраняется. Функция применяется поэлементно
и не изменяет исходный тензор.
Результат соответствует округлению к нулю
(для положительных чисел - вниз, для отрицательных - вверх).
Поддерживаются все типы данных, но для целочисленных
тензоров функция возвращает их копию без изменений.
Синтаксис
torch.trunc(input, *, out=None)
Параметры функции:
-
input(Tensor) - входной тензор; -
out(Tensor, optional) - выходной тензор (если указан, результат записывается в него).
Пример
Применим функцию trunc к тензору
с положительными и отрицательными числами:
import torch
t = torch.tensor([2.9, 3.1, -4.7, -5.2, 0.0])
res = torch.trunc(t)
print(res)
Результат выполнения кода:
tensor([ 2., 3., -4., -5., 0.])
Как видно из примера, для положительных чисел дробная часть просто отбрасывается, а для отрицательных чисел отбрасывание происходит в сторону увеличения (к нулю).
Пример
Функцию trunc можно применять
к многомерным тензорам:
import torch
t = torch.tensor([
[1.23, 4.56],
[-7.89, -0.12],
])
res = torch.trunc(t)
print(res)
Результат выполнения кода:
tensor([
[ 1., 4.],
[-7., -0.],
])
Пример
Если применить функцию trunc
к целочисленному тензору, то он вернётся
без изменений:
import torch
t = torch.tensor([1, 2, 3, 4, 5], dtype=torch.int)
res = torch.trunc(t)
print(res)
Результат выполнения кода:
tensor([1, 2, 3, 4, 5])
Пример
Используем параметр out, чтобы сохранить
результат в заранее созданный тензор:
import torch
t = torch.tensor([1.5, 2.8, -3.9])
out_t = torch.empty(3)
torch.trunc(t, out=out_t)
print(out_t)
Результат выполнения кода:
tensor([ 1., 2., -3.])