O inicializador Glorot, também chamado de inicializador Xavier.
Retira amostras de uma distribuição aleatória.
Se a distribuição for TRUNCATED_NORMAL, então a distribuição é centrada em 0 com stddev = Math.sqrt(2. / (fanIn + fanOut))
onde fanIn
é o número de unidades de entrada no tensor de peso e fanOut
é o número de unidades de saída em o tensor de peso.
Se a distribuição for UNIFORME, então as amostras são retiradas de uma distribuição uniforme dentro de [-limit, limit]
, onde limit = sqrt(6 / (fanIn + fanOut))
( fanIn
é o número de unidades de entrada no tensor de peso e fanOut
é o número de unidades de saída).
Exemplos:
Glorot Normal:
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:
Para um inicializador equivalente GlorotNormal, use TRUNCATED_NORMAL
para o parâmetro de distribuição.
Para um inicializador equivalente GlorotUniform, use UNIFORM
para o parâmetro de distribuição.
Veja também
Constantes
Duplo | ESCALA |
Constantes herdadas
Campos herdados
Construtores Públicos
Métodos herdados
Constantes
pública estática final dupla ESCALA
Construtores Públicos
public Glorot (Ops tf, VarianceScaling.Distribution distribution, long seed)
Cria um inicializador Glorot
Parâmetros
tf | o TensorFlow Ops |
---|---|
distribuição | O tipo de distribuição para o inicializador Glorot. |
semente | a semente para geração de números aleatórios. Um inicializador criado com uma determinada semente sempre produzirá o mesmo tensor aleatório para uma determinada forma e tipo de d. |