Функция range
Функция range создаёт тензор, заполненный числами арифметической прогрессии.
Первым параметром передаётся начальное значение, вторым - конечное значение (не включается),
третьим - шаг прогрессии. Функция возвращает одномерный тензор с элементами типа float
по умолчанию. В отличие от arange, функция range создаёт тензор только с типом данных
float и не поддерживает параметр dtype.
Синтаксис
torch.range(start, end, step=1)
Где:
- ⁅i⁆start⁅/i⁆ - начальное значение последовательности
- ⁅i⁆end⁅/i⁆ - конечное значение (не включается в результат)
- ⁅i⁆step⁅/i⁆ - шаг между элементами (по умолчанию 1)
Пример
Давайте создадим тензор с числами от 1 до 5 с шагом 1:
import torch
t = torch.range(1, 5)
print(t)
Результат выполнения кода:
tensor([1., 2., 3., 4., 5.])
Обратите внимание, что последнее значение не включается в последовательность,
поэтому при вызове torch.range(1, 5) мы получаем числа от 1 до 4, а не до 5.
Пример
Теперь создадим тензор с нецелым шагом 0.5:
import torch
t = torch.range(1, 3, 0.5)
print(t)
Результат выполнения кода:
tensor([1.0000, 1.5000, 2.0000, 2.5000])
Как видите, шаг может быть дробным числом.
Пример
Создадим последовательность с отрицательным шагом:
import torch
t = torch.range(5, 1, -1)
print(t)
Результат выполнения кода:
tensor([5., 4., 3., 2.])
В этом случае последовательность убывает от 5 до 1 (не включая 1).
Пример
Используем range для индексации элементов тензора:
import torch
t = torch.tensor([10, 20, 30, 40, 50, 60])
indices = torch.range(1, 4).long()
res = t[indices]
print(res)
Результат выполнения кода:
tensor([20, 30, 40])
В этом примере мы создаём индексы от 1 до 3 (не включая 4), преобразуем их в целочисленный тип и используем для выборки элементов из тензора.
Смотрите также
-
функцию
arange,
которая создаёт тензор с арифметической прогрессией с возможностью указания типа данных -
функцию
linspace,
которая создаёт тензор с равномерно распределёнными значениями между началом и концом -
функцию
logspace,
которая создаёт тензор с логарифмической шкалой -
функцию
tensor,
которая создаёт тензор из списка или массива