Skip to content

Commit e0e61dd

Browse files
committed
include in docs
1 parent c118028 commit e0e61dd

File tree

2 files changed

+30
-14
lines changed

2 files changed

+30
-14
lines changed

docs/src/reference.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,22 @@ NNlib.unfold
9595
NNlib.fold
9696
```
9797

98+
## Normalization
99+
100+
These roughly correspond to Flux's `*Norm` layers.
101+
<!-- `Flux`'s `*Norm` layers use `NNlib.*norm` and helper functionality such as `NNlib.RunningStats` internally. -->
102+
103+
```@docs
104+
NNlib.layernorm
105+
NNlib.batchnorm
106+
NNlib.instancenorm
107+
NNlib.groupnorm
108+
NNlib.norm_stats
109+
NNlib.norm_helper
110+
NNlib.RunningStats
111+
NNlib.update_running_stats!
112+
```
113+
98114
## Upsampling
99115

100116
`Flux`'s `Upsample` layer uses `NNlib.upsample_nearest`, `NNlib.upsample_bilinear`, and `NNlib.upsample_trilinear` as its backend. Additionally, `Flux`'s `PixelShuffle` layer uses `NNlib.pixel_shuffle` as its backend.

src/normalization.jl

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ end
1818
1919
Calculates sample mean and (uncorrected) variance of `x` along `dims`.
2020
21-
- `dims=(1,...,N-2,N)` for BatchNorm
22-
- `dims=(1,...,N-2)` for InstanceNorm and GroupNorm
23-
- `dims=(1,...,S)` where S < N for LayerNorm/Flux.jl/stable/
21+
- `dims=(1,...,N-2,N)` for batchnorm
22+
- `dims=(1,...,N-2)` for instancenorm and groupnorm
23+
- `dims=(1,...,S)` where S < N for layernorm
2424
2525
This is more efficient than calling `mean(x; dims)` and `var(x; dims)` separately,
2626
because it can share some computation across both.
@@ -54,8 +54,8 @@ _apply_scale_bias(x, scale, bias) = x .* scale .+ bias
5454
5555
Shared code path for all built-in norm functions.
5656
57-
`μ` and `σ²` should be calculated on the fly using [`norm_stats`](@ref),
58-
or extracted from an existing collection such as [`RunningStats`](@ref).
57+
`μ` and `σ²` should be calculated on the fly using [`NNlib.norm_stats`](@ref),
58+
or extracted from an existing collection such as [`NNlib.RunningStats`](@ref).
5959
`bias` and `scale` are consistent with cuDNN and Flux.Scale.
6060
We opt for `scale` over `weight` to avoid confusion with dense layers.
6161
If the size of the statistics and affine parameters differ,
@@ -79,7 +79,7 @@ Contains running mean and variance estimates for stateful norm functions.
7979
If the parameters are mutable, they will be updated in-place.
8080
Otherwise, they will be replaced wholesale.
8181
82-
See also [`update_running_stats!`](@ref).
82+
See also [`NNlib.update_running_stats!`](@ref).
8383
"""
8484
mutable struct RunningStats{M <: AbstractArray, V <: AbstractArray, MT <: Real}
8585
mean::M
@@ -129,10 +129,10 @@ end
129129
reduce_dims) where {N}
130130
131131
Performs a moving average update for layers with tracked statistics.
132-
`μ` and `σ²` are the sample mean and variance, most likely from [`norm_stats`](@ref).
133-
`reduce_dims` should also match the `dims` argument of [`norm_stats`](@ref).
132+
`μ` and `σ²` are the sample mean and variance, most likely from [`NNlib.norm_stats`](@ref).
133+
`reduce_dims` should also match the `dims` argument of [`NNlib.norm_stats`](@ref).
134134
135-
See also [`RunningStats`](@ref).
135+
See also [`NNlib.RunningStats`](@ref).
136136
"""
137137
function update_running_stats!(stats::RunningStats, x, μ, σ², reduce_dims::Dims)
138138
V = eltype(σ²)
@@ -168,7 +168,7 @@ Normalizes `x` along the first `S` dimensions.
168168
169169
For an additional learned affine transform, provide a `S`-dimensional `scale` and `bias`.
170170
171-
See also [`batchnorm`](@ref), [`instancenorm`](@ref), and [`groupnorm`](@ref).
171+
See also [`NNlib.batchnorm`](@ref), [`NNlib.instancenorm`](@ref), and [`NNlib.groupnorm`](@ref).
172172
173173
# Examples
174174
@@ -205,14 +205,14 @@ Functional [Batch Normalization](https://arxiv.org/abs/1502.03167) operation.
205205
Normalizes `x` along each ``D_1×...×D_{N-2}×1×D_N`` input slice,
206206
where `N-1` is the "channel" (or "feature", for 2D inputs) dimension.
207207
208-
Provide a [`RunningStats`](@ref) to fix a estimated mean and variance.
208+
Provide a [`NNlib.RunningStats`](@ref) to fix a estimated mean and variance.
209209
`batchnorm` will renormalize the input using these statistics during inference,
210210
and update them using batch-level statistics when training.
211211
To override this behaviour, manually set a value for `training`.
212212
213213
If specified, `scale` and `bias` will be applied as an additional learned affine transform.
214214
215-
See also [`layernorm`](@ref), [`instancenorm`](@ref), and [`groupnorm`](@ref).
215+
See also [`NNlib.layernorm`](@ref), [`NNlib.instancenorm`](@ref), and [`NNlib.groupnorm`](@ref).
216216
"""
217217
function batchnorm(x::AbstractArray{<:Any, N},
218218
running_stats::Union{RunningStats, Nothing} = nothing,
@@ -247,7 +247,7 @@ To override this behaviour, manually set a value for `training`.
247247
248248
If specified, `scale` and `bias` will be applied as an additional learned affine transform.
249249
250-
See also [`layernorm`](@ref), [`batchnorm`](@ref), and [`groupnorm`](@ref).
250+
See also [`NNlib.layernorm`](@ref), [`NNlib.batchnorm`](@ref), and [`NNlib.groupnorm`](@ref).
251251
"""
252252
function instancenorm(x::AbstractArray{<:Any, N},
253253
running_stats::Union{RunningStats, Nothing} = nothing,
@@ -281,7 +281,7 @@ The number of channels must be an integer multiple of the number of groups.
281281
282282
If specified, `scale` and `bias` will be applied as an additional learned affine transform.
283283
284-
See also [`layernorm`](@ref), [`batchnorm`](@ref), and [`instancenorm`](@ref).
284+
See also [`NNlib.layernorm`](@ref), [`NNlib.batchnorm`](@ref), and [`NNlib.instancenorm`](@ref).
285285
286286
# Examples
287287

0 commit comments

Comments
 (0)