2024-07-11
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Cet extrait de code montre comment initialiser les poids d'un réseau de neurones à l'aide de PyTorch, en utilisant la distribution normale tronquée. Une distribution normale tronquée signifie que les valeurs générées sont tronquées dans une plage pour éviter les valeurs extrêmes.utilisé icitorch.fmod
Comme solution de contournement pour obtenir cet effet.
La distribution normale tronquée est une modification de la distribution normale qui garantit que les valeurs générées se situent dans une certaine plage. Spécifiquement,torch.fmod
La fonction renvoie le reste du tenseur d'entrée divisé par 2 (c'est-à-dire tel que la valeur résultante soit comprise entre -2 et 2).
Dans le code, les quatre tenseurs de poids sont calculés selon différents écarts types (init_sd_first
, init_sd_middle
, init_sd_last
) est généré à partir d'une distribution normale tronquée. Les dimensions spécifiques sont :
(x_dim, width n_double)
(width, width n_double)
(width, 1)
Ces tenseurs de poids sont générés comme suit :
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)
]