Функция rand_like
Функция rand_like создает тензор, заполненный случайными числами из равномерного распределения на интервале [0, 1). Форма и тип данных нового тензора копируются у тензора, переданного первым параметром. Это удобно, когда нужно создать тензор случайных чисел с такими же характеристиками, как у уже существующего тензора.
Первым параметром функция принимает тензор-образец input. Вторым параметром можно указать тип данных dtype для создаваемого тензора. Если тип данных не указан, он наследуется от тензора-образца. Функция также поддерживает параметры device и requires_grad для управления размещением тензора и отслеживанием градиентов.
Синтаксис
torch.rand_like(input, [dtype], [device], [requires_grad])
Пример
Давайте создадим тензор-образец и на его основе создадим тензор со случайными числами:
import torch
t = torch.tensor([1, 2, 3, 4, 5])
res = torch.rand_like(t)
print(res)
Результат выполнения кода:
tensor([0.4963, 0.7682, 0.0885, 0.1320, 0.3074])
Пример
Создадим двумерный тензор и применим к нему rand_like:
import torch
t = torch.tensor([
[1, 2, 3],
[4, 5, 6],
])
res = torch.rand_like(t)
print(res)
Результат выполнения кода:
tensor([
[0.1894, 0.1093, 0.0646],
[0.3940, 0.8822, 0.8617],
])
Пример
Изменим тип данных создаваемого тензора на torch.float64:
import torch
t = torch.tensor([1, 2, 3, 4, 5], dtype=torch.float32)
res = torch.rand_like(t, dtype=torch.float64)
print(res)
print(res.dtype)
Результат выполнения кода:
tensor([0.9970, 0.3680, 0.5677, 0.8015, 0.1203], dtype=torch.float64)
torch.float64
Пример
Создадим тензор с отслеживанием градиентов:
import torch
t = torch.tensor([1.0, 2.0, 3.0])
res = torch.rand_like(t, requires_grad=True)
print(res)
print(res.requires_grad)
Результат выполнения кода:
tensor([0.6823, 0.7439, 0.7503], requires_grad=True)
True
Смотрите также
-
функцию
rand,
которая создает тензор со случайными числами по заданной форме -
функцию
randn_like,
которая создает тензор со случайными числами из нормального распределения по образцу -
функцию
randint_like,
которая создает тензор со случайными целыми числами по образцу -
функцию
manual_seed,
которая устанавливает зерно для генератора случайных чисел