NNlib.jl icon indicating copy to clipboard operation
NNlib.jl copied to clipboard

Exported symbol σ too generic

Open nomadbl opened this issue 1 year ago • 2 comments

Currently NNlib exports σ, which in this package refers to the sigmoid function. The name should be changed to "sigmoid" to avoid accidental usage in other code. For example the following code will silently use sigmoid (in this example instead of softmax) without raising an error:

julia> using Flux
struct MyOp{F, M<:AbstractMatrix}
  v::M
  σ::F
end
function (a::MyOp)(x::AbstractVecOrMat)
  return σ(a.v * x)
end
a = MyOp(rand32(3,3), Flux.softmax);
x = rand32(3,3);
a(x)
julia> a(x) .- a.σ(a.v*x)
3×3 Matrix{Float32}:
 0.513941  0.363848  0.456001
 0.343419  0.281814  0.289344
 0.519608  0.371748  0.457464

nomadbl avatar Sep 15 '24 08:09 nomadbl