shaowenwei / CapsNet-Tensorflow

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CapsNet-Tensorflow

Contributions welcome License completion

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 😊

Chat group:

WeChat: wechat Gitter: Gitter

Requirements

  • Python
  • NumPy
  • Tensorflow (I'm using 1.3.0, others should work, too)
  • tqdm (for showing training progress info)

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:

$ 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

Evaluation

$ python eval.py

Results

Code is still running, here some results:

total_loss

margin_loss reconstruction_loss

TODO:

  • Finish the MNIST version of capsNet (progress:90%)

  • 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.

About

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

License:Apache License 2.0


Languages

Language:Python 100.0%