Функция PyTorch torch.vmap
Справочное руководство Pytorch torch
torch.vmapЭто функция в PyTorch, используемая для векторного отображения. Она принимает функцию на вход и возвращает новую функцию, которая может автоматически работать с батчевыми тензорами, аналогично vmap в JAX.
Определение функции
torch.vmap(func, in_dims, out_dims, randomness)
Описание параметра
func: функция, подлежащая векторизацииin_dims: размерность пакета входного тензора (необязательно)out_dims: размерность пакета выходного тензора (необязательно)randomness: случайное поведение, необязательно "error", "different", "same"
Пример использования
Пример
import torch
# Определяем простую функцию
def simple_func(x):
return x * 2 + 1
# Используйте vmap для векторизации функции
vectorized_func = torch.vmap(simple_func)
# Пакетный ввод (размерность пакета равна 0)
batch_input = torch.randn(4, 3)
# Примените векторизованную функцию
output = vectorized_func(batch_input)
print("Форма входных данных:", batch_input.shape)
print("Форма выхода:", output.shape)
print("Вывод:")
print(output)
# Определяем простую функцию
def simple_func(x):
return x * 2 + 1
# Используйте vmap для векторизации функции
vectorized_func = torch.vmap(simple_func)
# Пакетный ввод (размерность пакета равна 0)
batch_input = torch.randn(4, 3)
# Примените векторизованную функцию
output = vectorized_func(batch_input)
print("Форма входных данных:", batch_input.shape)
print("Форма выхода:", output.shape)
print("Вывод:")
print(output)
Результат вывода:
输入形状: torch.Size([4, 3])
输出形状: torch.Size([4, 3])
输出:
tensor([[ 0.2345, 1.5678, -0.3456],
[ 2.1234, -1.2345, 0.5678],
[-0.8765, 1.2345, 2.3456],
[ 1.5678, 0.1234, -1.2345]])
Другие расширения