Skip to content
A Pytorch tutorial for implementation of Dynamic memory Network Plus
Jupyter Notebook Python Shell
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
DMNPlus.ipynb Add files via upload Jun 5, 2018 Add files via upload Jun 8, 2018 Add files via upload Jun 8, 2018
inputModule.png Add files via upload Jun 1, 2018 Add files via upload Jun 8, 2018 Update Jun 8, 2018

Dynamic Memory Network Plus

This is the Pytorch implementation of the paper Dynamic Memory Network for Visual and Textual Question Answering. This paper is an improved version of the original paper Ask Me Anything: Dynamic Memory Networks for Natural Language Processing. The major difference between these ideas is in the functioning of the input module and the memory module which has been explained in detail in the IPython notebook file of this repo.

Input Module for DMNPlus


  • The whole architecture of DMN+ consists of 4 modules: Input Module, Memory Module, Question Module & the Answer Module.
  • The input module uses Positional Encoder and BidirectionalGRU to encode the input text representation in a much better way than DMN.
  • The memory module uses Attention based GRU to compute the contexual vector representing the input relevant to previous memory state and the question and finally uses this to update its next memory state.
  • The question module uses a simple GRU to encode the question to get its vector representation.
  • The answer module predicts the answer based on the final memory state and the question.
  • CrossEntropyLoss has been used in the network and Adam optimizer to optimize the model parameters.
  • The model has been trained on bAbI dataset which consists of 20 different question answering tasks.


  • Python 3.6
  • Pytorch

Download Dataset

 chmod +x


Run the main python code



You can’t perform that action at this time.