Метод numel
Метод numel возвращает общее количество элементов в тензоре.
Это произведение всех размерностей тензора. Метод не принимает аргументов
и возвращает целое число. Он особенно полезен для проверки размера тензора
перед выполнением операций, для вычисления количества параметров в модели
или для определения общего числа элементов перед изменением формы тензора.
Синтаксис
tensor.numel()
Пример
Давайте создадим одномерный тензор из пяти элементов и узнаем количество его элементов:
import torch
t = torch.tensor([1, 2, 3, 4, 5])
res = t.numel()
print(res)
Результат выполнения кода:
5
Пример
Теперь создадим двумерный тензор размером 2x3 и посчитаем его элементы:
import torch
t = torch.tensor([
[1, 2, 3],
[4, 5, 6],
])
res = t.numel()
print(res)
Результат выполнения кода:
6
Пример
Метод numel также работает с тензорами высокой размерности.
Создадим трёхмерный тензор и проверим количество элементов:
import torch
t = torch.randn(2, 3, 4)
res = t.numel()
print(res)
Результат выполнения кода:
24
Пример
Метод numel часто используют для проверки количества элементов
перед изменением формы тензора:
import torch
t = torch.tensor([
[1, 2, 3],
[4, 5, 6],
])
print(t.numel())
t_reshaped = t.reshape(3, 2)
print(t_reshaped.numel())
Результат выполнения кода:
6
6
Пример
Метод numel полезен для подсчёта количества параметров в модели.
Рассмотрим простую линейную модель:
import torch
layer = torch.nn.Linear(10, 5)
total_params = sum(p.numel() for p in layer.parameters())
print(total_params)
Результат выполнения кода:
55
Смотрите также
-
атрибут
shape,
который возвращает размерность тензора в виде кортежа -
метод
dim,
который возвращает количество измерений тензора -
метод
size,
который возвращает размер тензора по указанному измерению -
метод
element_size,
который возвращает размер одного элемента тензора в байтах