Software & Demo

There are some C++ implementations of Neural Networks, etc.
These are mainly for NLP.
Eigen is very useful for matrix operations.
Here is a very helpful material to understand backpropagation.

  • N3LP
  • C++ implementation for Neural Network-based NLP, such as LSTM machine translation
    [code]

  • cpp neural exercise
  • Basic C++ programming exercise by implementing simple neural networks from scratch
    [code]

  • A joint many-task model
  • Handling five different tasks in a single multi-task model
    [demo, code]
    Reference: Kazuma Hashimoto, Caiming Xiong, Yoshimasa Tsuruoka, and Richard Socher, A Joint Many-Task Model: Growing a Neural Network for Multiple NLP Tasks, EMNLP 2017.

  • Character n-gram embeddings
  • Pre-training character n-gram embeddings
    [code]
    Reference: Kazuma Hashimoto, Caiming Xiong, Yoshimasa Tsuruoka, and Richard Socher. A Joint Many-Task Model: Growing a Neural Network for Multiple NLP Tasks, EMNLP 2017.

  • SVO embeddings
  • Embedding subject-verb-object phrases in a vector space
    [code, demo]
    Reference: Kazuma Hashimoto and Yoshimasa Tsuruoka, Learning Embeddings for Transitive Verb Disambiguation by Implicit Tensor Factorization, CVSC 2015.

  • Paragraph Vector
  • Training paragraph vectors using negaive sampling
    [code, demo]
    Reference: Quoc Le and Tomas Mikolov, Distributed Representations of Sentences and Documents, ICML2014.