Giter Club home page Giter Club logo

lstm's Introduction

A simple tutorial on long short-term memory (LSTM) in Python

This tutorial code implements the classic and basic LSTM design. It uses back-propagation-through-time (BPTT) algorithm for learning. The flow graph of a LSTM cell is given below:

              inxh      c           outc
      .--(Act)---x---+-----.---(Act)----x----.--> h
      |          |   L<-x--J            |    v
      |          |i     |f              |o   |
      |          ~      ~               ~    |
      wx         wi     wf              wo   |
      |          |      |               |    |
      ^----------^------^---------------^    |
                    |x:h                     |
  input---->--------^--------------<---------/

The implementation keeps all the forwarding states of every forwarding pass in their respective lists, so that backwarding can pop them for gradients computation. The lastest states of output value h and cell state c are kept in variables (instead of lists) since they are not needed by backwarding.

An example for MNIST is given, with >97% accuracy. The MNIST case uses LSTM in a way that, it splits one digit image data into equal-length pieces, and feeds the pieces into the network one by one recurrently, then outputs the recognization result with a softmax layer.

Another example for sequence prediction is given too. This example uses a sequence of 30 consecutive nosiy sine values (real numbers) to predict the following sine value in the sequence. The 30 samples are generated by sine function with noise added.

Compared to the vanilla RNN implementation, LSTM algorithm brings much better accuracy in predicting and stability in learning.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.