PyTorch torch.vmap Funktion
PyTorch torch Referenzhandbuch
torch.vmapEs ist eine Funktion in PyTorch, die für Vektormapping verwendet wird. Sie nimmt eine Funktion als Eingabe und gibt eine neue Funktion zurück, die automatisch auf gebatchten Tensoren arbeiten kann, ähnlich wie vmap in JAX.
Funktionsdefinition
torch.vmap(func, in_dims, out_dims, randomness)
Parameterbeschreibung
func: die zu vektorisierende Funktionin_dims: die Batch-Dimension des Eingabe-Tensors (optional)out_dims: die Batch-Dimension des Ausgabe-Tensors (optional)randomness: Zufallsverhalten, optional "error", "different", "same"
Anwendungsbeispiel
Beispiel
import torch
# Eine einfache Funktion definieren
def simple_func(x):
return x * 2 + 1
# vmap verwenden, um die Funktion zu vektorisieren
vectorized_func = torch.vmap(simple_func)
# Gebatchte Eingabe (Batch-Dimension ist 0)
batch_input = torch.randn(4, 3)
# Die vektorisierte Funktion anwenden
output = vectorized_func(batch_input)
print("Eingabeform:", batch_input.shape)
print("Ausgabeform:", output.shape)
print("Ausgabe:")
print(output)
# Eine einfache Funktion definieren
def simple_func(x):
return x * 2 + 1
# vmap verwenden, um die Funktion zu vektorisieren
vectorized_func = torch.vmap(simple_func)
# Gebatchte Eingabe (Batch-Dimension ist 0)
batch_input = torch.randn(4, 3)
# Die vektorisierte Funktion anwenden
output = vectorized_func(batch_input)
print("Eingabeform:", batch_input.shape)
print("Ausgabeform:", output.shape)
print("Ausgabe:")
print(output)
Das Ausgabeergebnis ist:
输入形状: 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]])
Andere Erweiterungen