Utilities

ClippedArray

QuantizedNetworks.ClippedArrayType
ClippedArray(x::AbstractArray, lo::Real=-1, hi::Real=1)
ClippedArray(dims...; lo::Real=-1, hi::Real=1, init = glorot_uniform)

Represents an Array type with elements clipped between lo and hi, if nothing is set range defaults to [-1, +1]. It still works in the case that hi is less then lo. Supports all standard Array type operations and functions, as well there are type aliases for 2D and 3D arrays (i.e. ClippedVector, ClippedMatrix).

Examples

julia> C = ClippedArray([-4.0, -0.8, 0.1, 1.2], -1, 1.2)
4-element ClippedArray{Float64, 1, Vector{Float64}}:
 -1.0
 -0.8
  0.1
  1.2

julia> C[[2, 4]] = [-2.4, 2.6]
2-element Vector{Float64}:
 -2.4
  2.6

julia> C
4-element ClippedArray{Float64, 1, Vector{Float64}}:
 -1.0
 -1.0
  0.1
  1.2

julia> using Random; Random.seed!(3);

julia> ClippedArray(2, 3)
2×3 ClippedArray{Float32, 2, Matrix{Float32}}:
  0.843751  -1.0  0.96547
 -0.351124   1.0  1.0
source