basic sketch

This commit is contained in:
Mike Innes 2016-04-02 16:42:05 +01:00
parent ce03afbeaf
commit 65a26952f3
3 changed files with 63 additions and 1 deletions

View File

@ -1,3 +1,3 @@
# Flux
[![Build Status](https://travis-ci.org/one-more-minute/Flux.jl.svg?branch=master)](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
View 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

View File

@ -2,4 +2,9 @@ module Flux
# Zero Flux Given
abstract Capacitor
macro flux(x)
end
end # module