Функция randint_like
Функция randint_like создает тензор с элементами,
которые являются случайными целыми числами из диапазона
[low, high). При этом форма нового
тензора повторяет форму переданного тензора. Первым параметром
функция принимает тензор-образец, вторым и третьим параметрами -
нижнюю и верхнюю границы диапазона (числа генерируются от
low включительно до high исключительно).
Четвертым параметром можно передать тип данных элементов.
Синтаксис
torch.randint_like(input, low, high, [dtype])
Пример
Давайте создадим тензор-образец, а затем на его основе сгенерируем новый тензор со случайными целыми числами от 0 до 10:
import torch
torch.manual_seed(0)
template = torch.tensor([1, 2, 3, 4, 5])
res = torch.randint_like(template, 0, 10)
print(res)
Результат выполнения кода:
tensor([4, 9, 3, 0, 3])
Пример
Сгенерируем тензор той же формы, что и двумерный тензор-образец, со случайными числами от 5 до 15:
import torch
torch.manual_seed(42)
template = torch.tensor([
[1, 2, 3],
[4, 5, 6],
])
res = torch.randint_like(template, 5, 15)
print(res)
Результат выполнения кода:
tensor([
[13, 11, 6],
[12, 8, 8],
])
Пример
Создадим тензор со случайными числами, но с явным указанием типа
данных torch.int16:
import torch
torch.manual_seed(7)
template = torch.tensor([0.1, 0.2, 0.3])
res = torch.randint_like(template, -5, 5, dtype=torch.int16)
print(res)
Результат выполнения кода:
tensor([-1, -4, -1], dtype=torch.int16)
Пример
Если не указывать dtype, то тип данных нового тензора
будет таким же, как у тензора-образца:
import torch
torch.manual_seed(123)
template = torch.tensor([1.0, 2.0, 3.0])
res = torch.randint_like(template, 0, 100)
print(res)
Результат выполнения кода:
tensor([58, 38, 48])
Смотрите также
-
функцию
randint,
которая создает тензор со случайными целыми числами по заданной форме -
функцию
rand_like,
которая создает тензор со случайными числами из равномерного распределения на основе формы другого тензора -
функцию
randn_like,
которая создает тензор со случайными числами из нормального распределения на основе формы другого тензора -
функцию
randperm,
которая создает случайную перестановку чисел от 0 до n-1