@@ -16,21 +16,6 @@ function tovec(x::ForwardDiff.Dual{T,V,N}) where {T,V,N}
1616 return ret
1717end
1818
19- if LoopVectorization. ifelse != = Base. ifelse
20- @inline function NNlib. leakyrelu (
21- x:: LoopVectorization.AbstractSIMD ,
22- a = NNlib. oftf (x, NNlib. leakyrelu_a),
23- )
24- LoopVectorization. ifelse (x > zero (x), float (x), NNlib. oftf (x, a * x)) # max(a*x, x) is 3x slower
25- end
26- @inline function NNlib. leakyrelu (
27- x:: ForwardDiff.Dual{<:Any,<:LoopVectorization.AbstractSIMD} ,
28- a = NNlib. oftf (x, NNlib. leakyrelu_a),
29- )
30- LoopVectorization. ifelse (x > zero (x), float (x), NNlib. oftf (x, a * x)) # max(a*x, x) is 3x slower
31- end
32- end
33-
3419vx0 = randnvec ()
3520vx1 = randnvec ()
3621vx2 = randnvec ()
@@ -50,3 +35,8 @@ vud = ForwardDiff.Dual(vu0, vu1, vu2)
5035 reinterpret (Float64, NNlib. leakyrelu .(tovec (vd0)))
5136@test reinterpret (Float64, tovec (NNlib. leakyrelu (vud))) ≈
5237 reinterpret (Float64, NNlib. leakyrelu .(tovec (vud)))
38+
39+ @test reinterpret (Float64, tovec (NNlib. relu (vd0))) ≈
40+ reinterpret (Float64, NNlib. relu .(tovec (vd0)))
41+ @test reinterpret (Float64, tovec (NNlib. relu (vud))) ≈
42+ reinterpret (Float64, NNlib. relu .(tovec (vud)))
0 commit comments