.FluxScale
struct defined in module
Flux
Scale(size::Integer..., σ=identity; bias=true, init=ones32)
Scale(scale::AbstractArray, [bias, σ])
Create an element-wise layer, whose forward pass is given by:
y = σ.(scale .* x .+ bias)
This uses
.* instead of matrix multiplication
* of
Dense.
The learnable scale & bias are initialised
init(size...) and
zeros32(size...), with
init=ones32 by default. You may specify the function
init, turn off trainable bias with
bias=false, or provide the array(s) explicitly.
Used by
LayerNorm with
affine=true.
julia> a = Flux.Scale(2)
Scale(2) # 4 parameters
julia> Flux.params(a)
Params([Float32[1.0, 1.0], Float32[0.0, 0.0]])
julia> a([1 2 3])
2×3 Matrix{Float32}:
1.0 2.0 3.0
1.0 2.0 3.0
julia> b = Flux.Scale([1 2 3 4], false, abs2)
Scale(1, 4, abs2; bias=false) # 4 parameters
julia> b([1, 10])
2×4 Matrix{Int64}:
1 4 9 16
100 400 900 1600
julia> Flux.params(b)
Params([[1 2 3 4]])
There are
3
methods for Flux.Scale:
The following pages link back here:
deprecations.jl , layers/basic.jl , layers/normalise.jl , layers/show.jl