A Tensorflow implementation of CapsNet in Hinton's paper Dynamic Routing Between Capsules
- Note:
The code of training phase has been running up in my computer. I'm improving it, cheers!
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)
- tqdm (for showing training progress info)
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:
$ pip install tqdm
$ python train.py
the tqdm package is not necessrary, just a tool for showing the training progress. if you don't want it, change the loop for step in ...
to for step in range(num_batch)
in train.py
$ python eval.py
Code is still running, here some results:
-
Finish the MNIST version of capsNet (progress:90%)
-
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.