Функция empty_like
Функция empty_like создает новый тензор,
имеющий такую же форму (размерность) и тип данных,
как у переданного тензора-образца.
Главная особенность этой функции в том,
что новый тензор не инициализируется
никакими значениями, а содержит "мусорные"
данные из памяти. Это может быть полезно
для повышения производительности,
когда вы собираетесь сразу заполнить
тензор нужными значениями.
Первым параметром функция принимает
тензор-образец (input). Вторым параметром
можно задать тип данных элементов
(dtype). Также можно указать устройство
(device), на котором будет размещен
тензор, и другие дополнительные опции.
Синтаксис
torch.empty_like(input, [dtype], [device], [requires_grad])
Пример
Давайте создадим тензор-образец и на его основе неинициализированный тензор:
import torch
t = torch.tensor([1, 2, 3, 4, 5])
res = torch.empty_like(t)
print(res)
Результат выполнения кода (значения могут отличаться):
tensor([0, 0, 0, 0, 0])
Обратите внимание, что фактически выведенные значения могут быть другими, так как тензор не инициализирован.
Пример
Создадим неинициализированный тензор с явным указанием типа данных:
import torch
t = torch.tensor([1, 2, 3])
res = torch.empty_like(t, dtype=torch.float)
print(res.dtype)
Результат выполнения кода:
"torch.float32"
Пример
Создадим неинициализированный тензор для двумерного образца:
import torch
t = torch.tensor([
[1, 2, 3],
[4, 5, 6],
])
res = torch.empty_like(t)
print(res.shape)
print(res)
Результат выполнения кода (значения могут отличаться):
torch.Size([2, 3])
tensor([
[0, 0, 0],
[0, 0, 0],
])
Форма тензора полностью совпадает с формой образца.
Смотрите также
-
функцию
empty,
которая создает неинициализированный тензор указанной формы -
функцию
zeros_like,
которая создает тензор, заполненный нулями, по образцу -
функцию
ones_like,
которая создает тензор, заполненный единицами, по образцу -
функцию
full_like,
которая создает тензор, заполненный указанным значением, по образцу