Afin que le modèle puisse apprendre, des valeurs aléatoires sont assignées aux paramètres du modèle avant l'exécution de l'optimisation. Différentes approches sont disponibles: Normal, Uniforme, Xavier.
initializer_uniform = mx.init.uniform(0.01)
initializer_normal = mx.init.normal(0.01)
initializer_Xavier = mx.init.Xavier(rnd_type = "gaussian", factor_type = "avg", magnitude = 2)
shapes<- perte$infer.shape(list(data=c(10,64)))
init_weight<- mx.init.create(initializer_Xavier, shape.array = shapes$arg.shapes, ctx = mx.cpu())
Paramètres initiaux de la première couche:
## [,1] [,2] [,3] [,4] [,5]
## [1,] -0.1468892 -0.31303713 0.11655252 -0.319210827 0.10671188
## [2,] -0.9758506 -0.15900101 0.03780269 0.407831132 -0.10965590
## [3,] 0.6533095 -0.44339389 -0.94432050 0.173175171 0.08963587
## [4,] 0.4842907 0.07610406 -0.36179867 0.953701437 1.24566805
## [5,] -0.5273501 -0.90586132 -0.10466730 -0.061899558 0.21827044
## [6,] -0.5221599 0.56400305 0.14890528 -0.475205570 0.27220798
## [7,] -0.7623045 0.77194858 -0.50170237 -0.473720253 0.17106315
## [8,] 0.7719700 1.10728288 -0.18521838 0.687193453 0.14405634
## [9,] 0.8050141 -0.13303186 -0.46044028 -0.001290238 -0.99506700
## [10,] -0.2301330 0.04370001 -0.07332364 0.020930536 0.77604187