PyTorch torch.manual_seed Funktion


PyTorch torch Referenzhandbuch

torch.manual_seedist eine Funktion in PyTorch, die verwendet wird, um den Seed für den Zufallszahlengenerator festzulegen. Das Setzen des Seeds gewährleistet die Reproduzierbarkeit der Ergebnisse.

Dies ist sehr wichtig, wenn experimentelle Ergebnisse reproduzierbar sein müssen, etwa beim Debugging, bei der Reproduktion von Papern und in anderen Szenarien.

Funktionsdefinition

torch.manual_seed(seed)

Parameters:

  • seed(int): Der Zufallsseed.

Rückgabewert:

  • Nothing

Anwendungsbeispiele

Beispiel 1: Setzen des Seeds zur Gewährleistung der Reproduzierbarkeit

Beispiel

import torch

# Den Zufallsseed setzen
torch.manual_seed(42)

# Die jedes Mal generierten Zufallszahlen sind dieselben
x = torch.randn(3)
print("Erstes Mal:", x)

# Denselben Seed zurücksetzen
torch.manual_seed(42)
y = torch.randn(3)
print("Zweites Mal:", y)

print("Die Ergebnisse sind dieselben:", torch.equal(x, y))

Die Ausgabe ist:

第一次: tensor([ 0.3367,  0.1288,  0.2345])
第二次: tensor([ 0.3367,  0.1288,  0.2345])
结果相同: True

Beispiel 2: Vollständig reproduzierbares Training

Beispiel

import torch
import random
import numpy as np

def set_seed(seed=42):
    # Den PyTorch-Seed setzen
    torch.manual_seed(seed)
    # Den NumPy-Seed setzen
    np.random.seed(seed)
    # Python-Zufallsseed setzen
    random.seed(seed)
    # Guten CUDA-Determinismus sicherstellen (falls verwendet)
    torch.backends.cudnn.deterministic = True
    torch.backends.cudnn.benchmark = False

# Den Seed setzen
set_seed(42)

# Zufällige Daten generieren
x = torch.randn(3, 4)
print(x)

Die Ausgabe ist:

tensor([[ 0.3367,  0.1288,  0.2345,  0.2303],
        [-1.1229, -0.1863,  0.1735, -0.5524],
        [ 0.6351, -0.2582,  0.4602, -0.5270]])

Um die Reproduzierbarkeit vollständig zu garantieren, müssen Sie die Seeds von PyTorch, NumPy und Python random gleichzeitig setzen.


PyTorch torch Referenzhandbuch

Andere Erweiterungen