From d91677f651a79bcb04e9c2f31e681ae9e6f85e07 Mon Sep 17 00:00:00 2001 From: Filippo Vicentini Date: Sun, 29 Sep 2019 12:23:41 +0200 Subject: [PATCH 1/3] Fix `params!` to work with complex numbers --- src/functor.jl | 1 + 1 file changed, 1 insertion(+) diff --git a/src/functor.jl b/src/functor.jl index 73483ab9..f69f4a65 100644 --- a/src/functor.jl +++ b/src/functor.jl @@ -40,6 +40,7 @@ end trainable(m) = functor(m)[1] params!(p::Params, x::AbstractArray{<:Real}, seen = IdSet()) = push!(p, x) +params!(p::Params, x::AbstractArray{Complex{<:Real}}, seen = IdSet()) = push!(p, x) function params!(p::Params, x, seen = IdSet()) x in seen && return From 14e94c291e09846b222d8ea24e465e7219122b50 Mon Sep 17 00:00:00 2001 From: Filippo Vicentini Date: Sun, 29 Sep 2019 12:28:01 +0200 Subject: [PATCH 2/3] Make it actually work --- src/functor.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/functor.jl b/src/functor.jl index f69f4a65..8fb23089 100644 --- a/src/functor.jl +++ b/src/functor.jl @@ -40,7 +40,7 @@ end trainable(m) = functor(m)[1] params!(p::Params, x::AbstractArray{<:Real}, seen = IdSet()) = push!(p, x) -params!(p::Params, x::AbstractArray{Complex{<:Real}}, seen = IdSet()) = push!(p, x) +params!(p::Params, x::AbstractArray{<:Complex{<:Real}}, seen = IdSet()) = push!(p, x) function params!(p::Params, x, seen = IdSet()) x in seen && return From 606fe5885489a5c93fb17ac2a3e8f93f9c71b871 Mon Sep 17 00:00:00 2001 From: Filippo Vicentini Date: Sun, 29 Sep 2019 12:33:02 +0200 Subject: [PATCH 3/3] Use <:Number --- src/functor.jl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/functor.jl b/src/functor.jl index 8fb23089..1d3e1bb2 100644 --- a/src/functor.jl +++ b/src/functor.jl @@ -39,8 +39,7 @@ end trainable(m) = functor(m)[1] -params!(p::Params, x::AbstractArray{<:Real}, seen = IdSet()) = push!(p, x) -params!(p::Params, x::AbstractArray{<:Complex{<:Real}}, seen = IdSet()) = push!(p, x) +params!(p::Params, x::AbstractArray{<:Number}, seen = IdSet()) = push!(p, x) function params!(p::Params, x, seen = IdSet()) x in seen && return