Метод half
Метод half преобразует тензор к типу данных torch.float16 (число с плавающей запятой половинной точности). Этот тип занимает в два раза меньше памяти, чем стандартный float32, что особенно полезно при работе с большими моделями и на GPU с поддержкой тензорных ядер. Метод не изменяет исходный тензор, а возвращает новый тензор с указанным типом данных.
Метод не принимает никаких параметров.
Синтаксис
t.half()
Пример
Давайте создадим тензор с типом float32 и преобразуем его в float16:
import torch
t = torch.tensor([1.5, 2.7, 3.3, 4.1, 5.9])
res = t.half()
print(res)
Результат выполнения кода:
tensor([1.5000, 2.6992, 3.3008, 4.1016, 5.9023], dtype=torch.float16)
Пример
Преобразование двумерного тензора к типу float16:
import torch
t = torch.tensor([
[1.1, 2.2, 3.3],
[4.4, 5.5, 6.6],
])
res = t.half()
print(res)
Результат выполнения кода:
tensor([
[1.0996, 2.1992, 3.3008],
[4.3984, 5.5000, 6.6016],
], dtype=torch.float16)
Пример
Использование метода half в цепочке операций для уменьшения потребления памяти при вычислениях:
import torch
t = torch.randn(100, 100)
res = t.half().mean()
print(res)
Результат выполнения кода:
tensor(0.0344, dtype=torch.float16)