Función PyTorch torch.manual_seed


Manual de referencia de Pytorch torch

torch.manual_seedEs la función de PyTorch que se utiliza para configurar la semilla del generador de números aleatorios. Configurar la semilla puede asegurar la reproducibilidad de los resultados.

Esto es muy importante cuando se necesita garantizar que los resultados experimentales sean reproducibles, por ejemplo, en escenarios como la depuración o la reproducción de artículos.

Definición de la función

torch.manual_seed(seed)

Parámetros:

  • seed(int): Semilla aleatoria.

Valor de retorno:

  • nada

Ejemplo de uso

Ejemplo 1: Configurar la semilla para garantizar la reproducibilidad

Ejemplo

import torch

# Configurar la semilla aleatoria
torch.manual_seed(42)

# Cada vez se generan los mismos números aleatorios
x = torch.randn(3)
print("Primera vez:", x)

# Restablecer la misma semilla
torch.manual_seed(42)
y = torch.randn(3)
print("Segunda vez:", y)

print("Resultados idénticos:", torch.equal(x, y))

El resultado de salida es:

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

Ejemplo 2: Entrenamiento completamente reproducible

Ejemplo

import torch
import random
import numpy as np

def set_seed(seed=42):
    # Configurar la semilla de PyTorch
    torch.manual_seed(seed)
    # Configurar la semilla de NumPy
    np.random.seed(seed)
    # Configurar la semilla de Python random
    random.seed(seed)
    # Asegurar el determinismo de CUDA (si se usa)
    torch.backends.cudnn.deterministic = True
    torch.backends.cudnn.benchmark = False

# Configurar la semilla
set_seed(42)

# Generar datos aleatorios
x = torch.randn(3, 4)
print(x)

El resultado de salida es:

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

Para garantizar completamente la reproducibilidad, es necesario configurar simultáneamente las semillas de PyTorch, NumPy y Python random.


Manual de referencia de Pytorch torch

Otras extensiones