End-To-End Memory Networks for bAbI question-answering tasks
Switch branches/tags
Nothing to show
Clone or download
Latest commit 84f6351 May 28, 2017
Failed to load latest commit information.
bechmarks Misc updates for README. Jan 10, 2016
data Initial commit Jan 10, 2016
demo Fix #8 index error May 8, 2017
memn2n Fixed a bug in MemoryBoW's constructor (thanks to @taey16). Aug 15, 2016
trained_model Misc Jan 10, 2016
.gitignore Misc updates for README. Jan 10, 2016
LICENSE Initial commit Jan 10, 2016
README.md Typos. Jan 11, 2016
babi_runner.py Misc Jan 10, 2016
config.py Initial commit Jan 10, 2016
requirements.txt Initial commit Jan 10, 2016
train_test.py Misc Jan 10, 2016
util.py Initial commit Jan 10, 2016


End-To-End Memory Networks for Question Answering

This is an implementation of MemN2N model in Python for the bAbI question-answering tasks as shown in the Section 4 of the paper "End-To-End Memory Networks". It is based on Facebook's Matlab code.

Web-based Demo


  • Python 2.7
  • Numpy, Flask (only for web-based demo) can be installed via pip:
$ sudo pip install -r requirements.txt
  • bAbI dataset should be downloaded to data/tasks_1-20_v1-2:
$ wget -qO- http://www.thespermwhale.com/jaseweston/babi/tasks_1-20_v1-2.tar.gz | tar xvz -C data


  • To run on a single task, use babi_runner.py with -t followed by task's id. For example,
python babi_runner.py -t 1

The output will look like:

Using data from data/tasks_1-20_v1-2/en
Train and test for task 1 ...
1 | train error: 0.876116 | val error: 0.75
|===================================               | 71% 0.5s
  • To run on 20 tasks:
python babi_runner.py -a
  • To train using all training data from 20 tasks, use the joint mode:
python babi_runner.py -j

Question Answering Demo

  • In order to run the Web-based demo using the pretrained model memn2n_model.pklz in trained_model/, run:
python -m demo.qa
  • Alternatively, you can try the console-based demo:
python -m demo.qa -console
  • The pretrained model memn2n_model.pklz can be created by running:
python -m demo.qa -train
  • To show all options, run python -m demo.qa -h


See the results here.


Vinh Khuc

Future Plans

  • Port to TensorFlow/Keras
  • Support Python 3