diff --git a/src/cuda/cudnn.jl b/src/cuda/cudnn.jl index ba6c8fd7..585b948d 100644 --- a/src/cuda/cudnn.jl +++ b/src/cuda/cudnn.jl @@ -83,7 +83,7 @@ function RNNDesc{T}(mode::Int, input::Int, hidden::Int; layers = 1) where T @check ccall((:cudnnSetRNNDescriptor_v6,libcudnn), cudnnStatus_t, (Ptr{Nothing},Ptr{Nothing},Cint,Cint,Ptr{Nothing},Cint,Cint,Cint,Cint,Cint), libcudnn_handle[],d[],hidden,layers,dropoutDesc,inputMode,direction,mode,algo,cudnnDataType(T)) - w = cuzero(T, rnnParamSize(T, d[], input)) + w = cuzeros(T, rnnParamSize(T, d[], input)) # TODO: avoid reserve allocation here rd = RNNDesc{T}(mode, input, hidden, w, params(w, input, hidden, ngates(mode))..., d[]) finalizer(rd, x -> diff --git a/src/layers/normalise.jl b/src/layers/normalise.jl index 5e5b9b4a..f6297034 100644 --- a/src/layers/normalise.jl +++ b/src/layers/normalise.jl @@ -108,9 +108,9 @@ mutable struct BatchNorm{F,V,W,N} end BatchNorm(chs::Integer, λ = identity; - initβ = (i) -> fill(0.0,i), initγ = (i) -> fill(1.0,i), ϵ = 1e-8, momentum = .1) = + initβ = (i) -> zeros(i), initγ = (i) -> ones(i), ϵ = 1e-8, momentum = .1) = BatchNorm(λ, param(initβ(chs)), param(initγ(chs)), - fill(0.0,chs), fill(1.0,chs), ϵ, momentum, true) + zeros(chs), ones(chs), ϵ, momentum, true) function (BN::BatchNorm)(x) size(x, ndims(x)-1) == length(BN.β) || diff --git a/src/layers/recurrent.jl b/src/layers/recurrent.jl index 15a590b7..d97c7fd7 100644 --- a/src/layers/recurrent.jl +++ b/src/layers/recurrent.jl @@ -84,7 +84,7 @@ end RNNCell(in::Integer, out::Integer, σ = tanh; init = glorot_uniform) = RNNCell(σ, param(init(out, in)), param(init(out, out)), - param(fill(0.0,out)), param(initn(out))) + param(zeros(out)), param(initn(out))) function (m::RNNCell)(h, x) σ, Wi, Wh, b = m.σ, m.Wi, m.Wh, m.b