Fonction torch.vmap de PyTorch
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 à vectoriserin_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)
# 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]])
Autres extensions