PyTorch torch.vmap Funktion


Pytorch torch 参考手册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 Funktion
  • in_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)

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]])

Pytorch torch 参考手册PyTorch torch Referenzhandbuch

Andere Erweiterungen