Typed frontend to TensorFlow and higher-order deep learning
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
TypedFlow timedCategorical: compute accuracy correctly Aug 29, 2018
docs talk tweaks Nov 1, 2017
examples update mnist example Aug 23, 2018
.gitignore
LICENSE
Makefile
README.org
TypedFlow.hs
styx.yaml
typedflow.cabal no need to depend on tensorflow before haskell backend is active. Aug 29, 2018
typedflow_rts.py

README.org

TypedFlow

TypedFlow is a typed, higher-order frontend to TensorFlow and a high-level library for deep-learning.

The main design principles are:

  • To make the parameters of layers explicit. This choice makes sharing of parameters explicit and allows to implement “layers” as pure functions.
  • To provide as precise as possible types. Functions are explicit about the shapes and elements of the tensors that they manipulate (they are often polymorphic in shapes and elements though.)
  • To let combinators be as transparent as possible. If a NN layers is a simple tensor transformation it will be exposed as such.

In this version, the interface to TensorFlow is done via python-code generation and a suitable runtime system.

Documentation

The compiled documentation should be found on hackage.

Examples

TypedFlow comes with two examples of neural networks:

To running the examples can be done like so:

nix-env -iA nixpkgs.haskellPackages.styx
nix-env -iA nixpkgs.cabal2nix
styx configure
cd examples/seq2seq
make