Función PyTorch torch.vmap


Pytorch torch 参考手册Manual de referencia de Pytorch torch

torch.vmapes una función en PyTorch para el mapeo de vectores. Acepta una función como entrada y devuelve una nueva función que puede operar automáticamente sobre tensores por lotes, similar a vmap en JAX.

Definición de la función

torch.vmap(func, in_dims, out_dims, randomness)

Descripción de parámetros

  • func: la función a vectorizar
  • in_dims: la dimensión de lote del tensor de entrada (opcional)
  • out_dims: la dimensión de lote del tensor de salida (opcional)
  • randomness: comportamiento aleatorio, opciones "error", "different", "same"

Ejemplo de uso

Ejemplo

import torch

# Definir una función simple
def simple_func(x):
    return x * 2 + 1

# Usar vmap para vectorizar la función
vectorized_func = torch.vmap(simple_func)

# Entrada por lotes (dimensión de lote 0)
batch_input = torch.randn(4, 3)

# Aplicar la función vectorizada
output = vectorized_func(batch_input)

print("Forma de entrada:", batch_input.shape)
print("Forma de salida:", output.shape)
print("Salida:")
print(output)

El resultado de salida es:

输入形状: 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]])

Pytorch torch 参考手册Manual de referencia de Pytorch torch

Otras extensiones