L'inizializzatore Glorot, chiamato anche inizializzatore Xavier.
Disegna campioni da una distribuzione casuale.
Se la distribuzione è TRUNCATED_NORMAL, allora la distribuzione è centrata su 0 con stddev = Math.sqrt(2. / (fanIn + fanOut))
dove fanIn
è il numero di unità di input nel tensore del peso e fanOut
è il numero di unità di output in il tensore del peso.
Se la distribuzione è UNIFORME, i campioni vengono estratti da una distribuzione uniforme entro [-limit, limit]
, dove limit = sqrt(6 / (fanIn + fanOut))
( fanIn
è il numero di unità di input nel tensore del peso e fanOut
è il numero di unità di output).
Esempi:
Glorot Normale:
long seed = 1001l; Glorot<TFloat32, TFloat32> initializer = new org.tensorflow.framework.initializers.Glorot<>(tf, Distribution.TRUNCATED_NORMAL, seed); Operand<TFloat32> values = initializer.call(tf.constant(Shape.of(2,2)), TFloat32.class);
Uniforme Glorot:
long seed = 1001l; Glorot<TFloat32, TFloat32> initializer = new org.tensorflow.framework.initializers.Glorot<>(tf, Distribution.UNIFORM, seed); Operand<TFloat32> values = initializer.call(tf.constant(Shape.of(2,2)), TFloat32.class);
NOTA:
Per un inizializzatore equivalente GlorotNormal, utilizzare TRUNCATED_NORMAL
per il parametro di distribuzione.
Per un inizializzatore equivalente GlorotUniform, utilizzare UNIFORM
per il parametro di distribuzione.
Guarda anche
Costanti
Doppio | SCALA |
Costanti ereditate
Campi ereditati
Costruttori pubblici
Glorot (Ops tf, distribuzione VarianceScaling.Distribution , seed lungo) Crea un inizializzatore Glorot |
Metodi ereditati
Costanti
pubblica statica finale doppia SCALA
Costruttori pubblici
public Glorot (Ops tf, distribuzione VarianceScaling.Distribution , seed lungo)
Crea un inizializzatore Glorot
Parametri
tf | le operazioni TensorFlow |
---|---|
distribuzione | Il tipo di distribuzione per l'inizializzatore Glorot. |
seme | il seme per la generazione di numeri casuali. Un inizializzatore creato con un dato seme produrrà sempre lo stesso tensore casuale per una data forma e dtype. |