From 9e2148ecbd6321476fe20c595d7dcbee7750edce Mon Sep 17 00:00:00 2001 From: Huw Campbell Date: Thu, 14 Dec 2017 09:48:32 +1100 Subject: [PATCH] Prepare for 0.2.0 release --- CHANGELOG.md | 9 +++++++++ grenade.cabal | 3 ++- src/Grenade/Recurrent/Layers/ConcatRecurrent.hs | 11 +++-------- 3 files changed, 14 insertions(+), 9 deletions(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..cc226f18 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,9 @@ +## Version 0.2.0 (14 Dec 2017) + +- Allow composition of recurrent layers + +- Optimise the Wengert tape for the LSTM layer + +## Version 0.1.0 (12 Apr 2017) + +- Initial release. diff --git a/grenade.cabal b/grenade.cabal index 88018ca3..21f37943 100644 --- a/grenade.cabal +++ b/grenade.cabal @@ -1,5 +1,5 @@ name: grenade -version: 0.1.0 +version: 0.2.0 license: BSD2 license-file: LICENSE author: Huw Campbell @@ -24,6 +24,7 @@ description: extra-source-files: README.md + CHANGELOG.md cbits/im2col.h cbits/im2col.c cbits/gradient_descent.h diff --git a/src/Grenade/Recurrent/Layers/ConcatRecurrent.hs b/src/Grenade/Recurrent/Layers/ConcatRecurrent.hs index 2da54d2e..bca50577 100644 --- a/src/Grenade/Recurrent/Layers/ConcatRecurrent.hs +++ b/src/Grenade/Recurrent/Layers/ConcatRecurrent.hs @@ -31,19 +31,14 @@ import Grenade.Recurrent.Core import Numeric.LinearAlgebra.Static ( (#), split, R ) --- | A Concatentating Layer. +-- | A Recurrent Concatentating Layer. -- -- This layer shares it's input state between two sublayers, and concatenates their output. -- -- With Networks able to be Layers, this allows for very expressive composition of complex Networks. -- --- The Concat layer has a few instances, which allow one to flexibly "bash" together the outputs. --- --- Two 1D vectors, can go to a 2D shape with 2 rows if their lengths are identical. --- Any 2 1D vectors can also become a longer 1D Vector. --- --- 3D images become 3D images with more channels. The sizes must be the same, one can use Pad --- and Crop layers to ensure this is the case. +-- The ConcatRecurrent layer currently supports D1 shape concatenation only, but allows a mix of +-- recurrent and feedforward layers. data ConcatRecurrent :: Shape -> * -> Shape -> * -> * where ConcatRecLeft :: x -> y -> ConcatRecurrent m (Recurrent x) n (FeedForward y) ConcatRecRight :: x -> y -> ConcatRecurrent m (FeedForward x) n (Recurrent y)