/CapsNet-Tensorflow

A Tensorflow implementation of CapsNet(Capsules Net) in Hinton's paper Dynamic Routing Between Capsules

Primary LanguagePythonApache License 2.0Apache-2.0

CapsNet-Tensorflow

Contributions welcome License completion

A Tensorflow implementation of CapsNet in Hinton's paper Dynamic Routing Between Capsules

  • Note:

The code is not complete yet, but the routing algorithm and the main part of CapsNet have been done. I'm trying to finish the training pipeline today. You may see the training result tomorrow. So why don't you 'taste' the paper with this code fisrt. Enjoy it. Here is my understanding of the section 4 of the paper (the core part of CapsNet), it might be helpful for understanding the code. Thanks for your focus

if you find out any problems, please let me know. I will try my best to 'kill' it as quickly as possible.

In the day of waiting, be patient: Merry days will come, believe. ---- Alexander PuskinIf 😊

Requirements

  • Python
  • NumPy
  • Tensorflow (I'm using 1.3.0, others should work, too)

Usage

Training

Step 1. Clone this repository with git.

$ git clone https://github.com/naturomics/CapsNet-Tensorflow.git
$ cd CapsNet-Tensorflow

Step 2. Download MNIST dataset, mv and extract them into data/mnist directory.(Be careful the backslash appeared around the curly braces when you copy the wget command to your terminal, remove it)

$ mkdir -p data/mnist
$ wget -c -P data/mnist http://yann.lecun.com/exdb/mnist/{train-images-idx3-ubyte.gz,train-labels-idx1-ubyte.gz,t10k-images-idx3-ubyte.gz,t10k-labels-idx1-ubyte.gz}
$ gunzip data/mnist/*.gz

Step 3. Start training with command line:

$ python train.py

Evaluation

$ python eval.py

Results

TODO:

  • Finish the MNIST version of capsNet (progress:80%)
  • Do some different experiments for capsNet:
    • Using other datasets such as CIFAR
      • Adjusting model structure
  • There is another new paper about capsules(submitted to ICLR 2018), follow-up.