2024-07-11
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Este fragmento de código muestra cómo inicializar los pesos de una red neuronal usando PyTorch, usando la distribución normal truncada. Una distribución normal truncada significa que los valores generados se truncan dentro de un rango determinado para evitar valores extremos.usado aquítorch.fmod
Como solución alternativa para lograr este efecto.
La distribución normal truncada es una modificación de la distribución normal que garantiza que los valores generados caigan dentro de un rango determinado. Específicamente,torch.fmod
La función devuelve el resto del tensor de entrada dividido por 2 (es decir, de modo que el valor resultante esté entre -2 y 2).
En el código, los cuatro tensores de peso se calculan según diferentes desviaciones estándar (init_sd_first
, init_sd_middle
, init_sd_last
) se genera a partir de una distribución normal truncada. Las dimensiones específicas son:
(x_dim, width n_double)
(width, width n_double)
(width, 1)
Estos tensores de peso se generan de la siguiente manera:
initial_weights = [
torch.fmod(torch.normal(0, init_sd_first, size=(x_dim, width n_double)), 2),
torch.fmod(torch.normal(0, init_sd_middle, size=(width, width n_double)), 2),
torch.fmod(torch.normal(0, init_sd_middle, size=(width, width n_double)), 2),
torch.fmod(torch.normal(0, init_sd_last, size=(width, 1)), 2)
]