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))
# 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)
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.
Otras extensiones