basic sketch
This commit is contained in:
parent
ce03afbeaf
commit
65a26952f3
@ -1,3 +1,3 @@
|
||||
# Flux
|
||||
|
||||
[](https://travis-ci.org/one-more-minute/Flux.jl)
|
||||
Flux is an experimental machine perception / ANN library for Julia.
|
||||
|
57
examples/sketch.jl
Normal file
57
examples/sketch.jl
Normal file
@ -0,0 +1,57 @@
|
||||
# Simple Perceptron Layer
|
||||
|
||||
@flux type Simple
|
||||
weight
|
||||
bias
|
||||
feed(x) = σ( weight*x + bias )
|
||||
end
|
||||
|
||||
Simple(nx::Integer, ny::Integer; init = randn) =
|
||||
Simple(init(nx, ny), init(ny))
|
||||
|
||||
# Time Delay Node
|
||||
|
||||
type Delay
|
||||
n::Int
|
||||
next
|
||||
end
|
||||
|
||||
# feed(l::Delay, x) = ...
|
||||
|
||||
# back(l::Delay, y) = ...
|
||||
|
||||
# Simple Recurrent
|
||||
|
||||
@flux type RecurrentU
|
||||
Wxh; Whh; Bh
|
||||
Wxy; Why; By
|
||||
|
||||
function feed(x, hidden)
|
||||
hidden′ = σ( Wxh*x + Whh*hidden + Bh )
|
||||
y = σ( Wxy*x + Why*hidden′ + By )
|
||||
y, hidden′
|
||||
end
|
||||
end
|
||||
|
||||
Recurrent(nx, ny, nh; init = randn) =
|
||||
Recurrent(init(nx, nh), init(nh, nh), init(nh),
|
||||
init(nx, ny), init(nh, ny), init(ny))
|
||||
|
||||
@flux type Looped{T}
|
||||
delay::Delay
|
||||
layer::T
|
||||
|
||||
function feed(x)
|
||||
y, hidden = layer(x, delay(hidden))
|
||||
return y
|
||||
end
|
||||
end
|
||||
|
||||
type Recurrent
|
||||
layer::Looped{RecurrentU}
|
||||
end
|
||||
|
||||
Recurrent(nx, ny, nh; init = randn, delay = 10) =
|
||||
Looped(Delay(delay, init(nh)), RecurrentU(nx, ny, nh))
|
||||
|
||||
@forward Recurrent.layer feed
|
@ -2,4 +2,9 @@ module Flux
|
||||
|
||||
# Zero Flux Given
|
||||
|
||||
abstract Capacitor
|
||||
|
||||
macro flux(x)
|
||||
end
|
||||
|
||||
end # module
|
||||
|
Loading…
Reference in New Issue
Block a user