.Flux
glorot_uniform
function
defined in module
Flux
glorot_uniform([rng = default_rng_value()], size...; gain = 1) -> Array
glorot_uniform([rng]; kw...) -> Function
Return an
Array{Float32}
of the given
size
containing random numbers drawn from a uniform distribution on the interval
[-x, x], where
x = gain * sqrt(6 / (fan_in + fan_out))
.
This method is described in [1] and also known as Xavier initialization.
julia> Flux.glorot_uniform(3, 4) |> summary
"3×4 Matrix{Float32}"
julia> round.(extrema(Flux.glorot_uniform(10, 100)), digits=3)
(-0.232f0, 0.234f0)
julia> round.(extrema(Flux.glorot_uniform(100, 10)), digits=3)
(-0.233f0, 0.233f0)
julia> round.(extrema(Flux.glorot_uniform(100, 100)), digits=3)
(-0.173f0, 0.173f0)
julia> Dense(3 => 2, tanh; init = Flux.glorot_uniform(MersenneTwister(1)))
Dense(3 => 2, tanh) # 8 parameters
julia> ans.bias
2-element Vector{Float32}:
0.0
0.0
[1] Glorot, Xavier, and Yoshua Bengio. "Understanding the difficulty of training deep feedforward neural networks." Proceedings of the thirteenth international conference on artificial intelligence and statistics. 2010.
There are
3
methods for Flux.glorot_uniform
:
The following pages link back here:
layers/attention.jl , layers/basic.jl , layers/conv.jl , layers/recurrent.jl , utils.jl