Fonction torch.manual_seed de PyTorch


Manuel de référence Pytorch torch

torch.manual_seedest une fonction dans PyTorch utilisée pour définir la graine du générateur de nombres aléatoires. Définir la graine garantit la reproductibilité des résultats.

Ceci est très important lorsque les résultats expérimentaux doivent être reproductibles, comme dans le débogage, la reproduction d'articles et d'autres scénarios.

Définition de fonction

torch.manual_seed(seed)

Parameters:

  • seed(int) : La graine aléatoire.

Valeur de retour:

  • Nothing

Exemples d'utilisation

Exemple 1 : Définition de la graine pour garantir la reproductibilité

Exemple

import torch

# Définir la graine aléatoire
torch.manual_seed(42)

# Les nombres aléatoires générés à chaque fois sont les mêmes
x = torch.randn(3)
print("Première fois :", x)

# Réinitialiser la même graine
torch.manual_seed(42)
y = torch.randn(3)
print("Deuxième fois :", y)

print("Les résultats sont identiques :", torch.equal(x, y))

La sortie est :

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

Exemple 2 : Entraînement entièrement reproductible

Exemple

import torch
import random
import numpy as np

def set_seed(seed=42):
    # Définir la graine PyTorch
    torch.manual_seed(seed)
    # Définir la graine NumPy
    np.random.seed(seed)
    # Définir la graine aléatoire Python
    random.seed(seed)
    # Assurer un bon déterminisme CUDA (si utilisé)
    torch.backends.cudnn.deterministic = True
    torch.backends.cudnn.benchmark = False

# Définir la graine
set_seed(42)

# Générer des données aléatoires
x = torch.randn(3, 4)
print(x)

La sortie est :

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

Pour garantir pleinement la reproductibilité, vous devez définir simultanément les graines de PyTorch, NumPy et Python random.


Manuel de référence Pytorch torch

Autres extensions