• Stars
    star
    576
  • Rank 76,941 (Top 2 %)
  • Language
    Python
  • License
    Other
  • Created over 8 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

End-To-End Memory Networks for bAbI question-answering tasks

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

Requirements

  • 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

Usage

  • 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

Benchmarks

See the results here.

Author

Vinh Khuc

Future Plans

  • Port to TensorFlow/Keras
  • Support Python 3

References