more interesting recurrent model

This commit is contained in:
Mike J Innes 2016-10-26 11:34:17 +01:00
parent 652c26728e
commit 2a58b23085

View File

@ -71,21 +71,19 @@ function unroll(model, n)
@> group(state, group(outputs...)) detuple @> group(state, group(outputs...)) detuple
end end
# syntax(x) = syntax(Flow.dl(x), bindconst = true)
# r = Recurrent(10,10)
# unroll(r,5) |> cse |> syntax |> prettify |> display
@net type Recurrent @net type Recurrent
Wx; Wh; B Wxh; Whh; Why
hidden hidden
function (x) function (x)
hidden = σ( Wx*x + Wh*hidden + B ) hidden = σ( Wxh*x + Whh*hidden )
y = Why*hidden
end end
end end
Recurrent(in::Integer, out::Integer; init = initn) = Recurrent() = Recurrent((rand(i,i) for i = 1:4)...)
Recurrent(init(out, in), init(out, out), init(out), zeros(out))
Base.show(io::IO, r::Recurrent) = # syntax(x) = syntax(Flow.dl(x), bindconst = true)
print(io, "Flux.Recurrent(...)")
# r = Recurrent()
# unroll(r,10) |> cse |> syntax |> prettify |> display