Fonction torch.vmap de PyTorch


Pytorch torch 参考手册Manuel de référence Pytorch torch

torch.vmapC'est une fonction de PyTorch utilisée pour le mappage vectoriel. Elle prend une fonction en entrée et renvoie une nouvelle fonction qui peut automatiquement opérer sur des tenseurs batchés, similaire à vmap dans JAX.

Définition de fonction

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

Description du paramètre

  • func: la fonction à vectoriser
  • in_dims: la dimension de lot du tenseur d'entrée (facultatif)
  • out_dims: la dimension de lot du tenseur de sortie (facultatif)
  • randomness: comportement aléatoire, valeurs facultatives "error", "different", "same"

Exemple d'utilisation

Exemple

import torch

# Définir une fonction simple
def simple_func(x):
    return x * 2 + 1

# Utiliser vmap pour vectoriser la fonction
vectorized_func = torch.vmap(simple_func)

# Entrée par lots (la dimension de lot est 0)
batch_input = torch.randn(4, 3)

# Appliquer la fonction vectorisée
output = vectorized_func(batch_input)

print("Forme de l'entrée :", batch_input.shape)
print("Forme de sortie :", output.shape)
print("Sortie :")
print(output)

Le résultat de sortie est:

输入形状: 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 参考手册Manuel de référence Pytorch torch

Autres extensions