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 😊
- Python
- NumPy
- Tensorflow (I'm using 1.3.0, others should work, too)
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
$ python eval.py
- Finish the MNIST version of capsNet (progress:80%)
- Do some different experiments for capsNet:
- Using other datasets such as CIFAR
- Adjusting model structure
- Using other datasets such as CIFAR
- There is another new paper about capsules(submitted to ICLR 2018), follow-up.