Функция ceil
Функция ceil в PyTorch применяется к каждому элементу тензора и возвращает новый тензор,
в котором все числа округлены вверх до ближайшего целого.
При этом положительные и отрицательные числа обрабатываются в сторону увеличения:
например, 3.2 превратится в 4.0, а -3.2 - в -3.0.
Функция не изменяет исходный тензор, а возвращает новый с округлёнными значениями.
Синтаксис
torch.ceil(input)
В качестве обязательного аргумента передаётся тензор input.
Функция поддерживает все числовые типы данных PyTorch.
Пример
Применим функцию ceil к одномерному тензору с положительными дробными числами:
import torch
t = torch.tensor([1.2, 2.9, 3.5, 4.1])
res = torch.ceil(t)
print(res)
Результат выполнения кода:
tensor([2., 3., 4., 5.])
Пример
Посмотрим, как функция работает с отрицательными числами:
import torch
t = torch.tensor([-1.2, -2.9, -3.5, -4.1])
res = torch.ceil(t)
print(res)
Результат выполнения кода:
tensor([-1., -2., -3., -4.])
Обратите внимание: числа округляются в сторону увеличения, поэтому -1.2 становится -1.0, а не -2.0.
Пример
Функцию ceil можно применять к многомерным тензорам.
Рассмотрим двумерный случай:
import torch
t = torch.tensor([
[1.1, 2.2, 3.3],
[4.4, 5.5, 6.6]
])
res = torch.ceil(t)
print(res)
Результат выполнения кода:
tensor([
[2., 3., 4.],
[5., 6., 7.]
])
Пример
Существует также метод ceil, который можно вызывать непосредственно у тензора.
Этот способ эквивалентен вызову функции torch.ceil:
import torch
t = torch.tensor([3.14, 2.71, 1.61])
res = t.ceil()
print(res)
Результат выполнения кода:
tensor([4., 3., 2.])
Пример
Функция ceil сохраняет тип данных исходного тензора.
Если передан тензор типа float32, результат также будет иметь тип float32:
import torch
t = torch.tensor([1.7, 2.3, 3.8], dtype=torch.float16)
res = torch.ceil(t)
print(res.dtype)
Результат выполнения кода:
torch.float16