Qual è il metodo predefinito di inizializzazione delle variabili utilizzato quando viene chiamato tf.get_variable()
senza alcuna specifica per l'inizializzatore? Il documento dice solo "Nessuno".Qual è l'inizializzatore della variabile di default in Tensorflow?
8
A
risposta
8
Se inizializzatore è
None
(default), verrà utilizzato l'inizializzatore predefinita passato nella portata variabile. Se quello èNone
, verrà utilizzato unglorot_uniform_initializer
.
La funzione glorot_uniform_initializer
inizializza i valori da una distribuzione uniforme.
Questa funzione è documented come:
L'uniforme inizializzatore Glorot, chiamato anche inizializzatore uniforme Xavier.
Si richiama campioni da una distribuzione uniforme all'interno [-limit, limite],
dovelimit
èsqrt(6/(fan_in + fan_out))
dovefan_in
è il numero di unità di input del tensore peso
efan_out
è il numero di unità di uscita in il tensore del peso.Riferimento: http://jmlr.org/proceedings/papers/v9/glorot10a/glorot10a.pdf
Correzione: 'glorot_uniform_initializer' viene utilizzato solo per i tipi di galleggiamento. [Codice sorgente] (https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/ops/variable_scope.py#L828) – Maxim