

GitHub - gram-ai/capsule-networks: A PyTorch implementation of the NIPS 2017 pap...
source link: https://github.com/gram-ai/capsule-networks
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Dynamic Routing Between Capsules
A barebones CUDA-enabled PyTorch implementation of the CapsNet architecture in the paper "Dynamic Routing Between Capsules" by Kenta Iwasaki on behalf of Gram.AI.
Training for the model is done using TorchNet, with MNIST dataset loading and preprocessing done with TorchVision.
Description
A capsule is a group of neurons whose activity vector represents the instantiation parameters of a specific type of entity such as an object or object part. We use the length of the activity vector to represent the probability that the entity exists and its orientation to represent the instantiation paramters. Active capsules at one level make predictions, via transformation matrices, for the instantiation parameters of higher-level capsules. When multiple predictions agree, a higher level capsule becomes active. We show that a discrimininatively trained, multi-layer capsule system achieves state-of-the-art performance on MNIST and is considerably better than a convolutional net at recognizing highly overlapping digits. To achieve these results we use an iterative routing-by-agreement mechanism: A lower-level capsule prefers to send its output to higher level capsules whose activity vectors have a big scalar product with the prediction coming from the lower-level capsule.
Paper written by Sara Sabour, Nicholas Frosst, and Geoffrey E. Hinton. For more information, please check out the paper here.
Requirements
- Python 3
- PyTorch
- TorchVision
- TorchNet
- Visdom
Usage
Step 1 Adjust the number of training epochs, batch sizes, etc. inside capsule_network.py
.
BATCH_SIZE = 100 NUM_CLASSES = 10 NUM_EPOCHS = 30 NUM_ROUTING_ITERATIONS = 3
Step 2 Start training. The MNIST dataset will be downloaded if you do not already have it in the same directory the script is run in. Make sure to have Visdom Server running!
$ sudo python3 -m visdom.server & python3 capsule_network.py
Benchmarks
Highest accuracy was 99.7% on the 443rd epoch. The model may achieve a higher accuracy as shown by the trend of the test accuracy/loss graphs below.
Default PyTorch Adam optimizer hyperparameters were used with no learning rate scheduling. Epochs with batch size of 100 takes ~3 minutes on a Razer Blade w/ GTX 1050 and ~2 minutes on a NVIDIA Titan XP
- Extension to other datasets apart from MNIST.
Credits
Primarily referenced these two TensorFlow and Keras implementations:
Many thanks to @InnerPeace-Wu for a discussion on the dynamic routing procedure outlined in the paper.
Contact/Support
Gram.AI is currently heavily developing a wide number of AI models to be either open-sourced or released for free to the community, hence why we cannot guarantee complete support for this work.
If any issues come up with the usage of this implementation however, or if you would like to contribute in any way, please feel free to send an e-mail to [email protected] or open a new GitHub issue on this repository.
Recommend
-
71
Learn new Google tools with your community. Find a DevFest near you!
-
49
Capsule Networks: The New Deep Learning Network A guide and introduction to understanding and using Capsule Networks.
-
64
Since 2012 with the introduction of AlexNet, convolutional neural networks(CNNs) are being used as sole resource for many wide range image problems. Convolutional neural networks are able to perform really well in the fie...
-
49
Capsule Neural Networks — The future for autonomous vehicles
-
61
代码实现: https:// github.com/zhangxiann/S kip-gram 这是我用于...
-
7
README.md 这是我用于学习 Skip-gram 的笔记。 文中会有一些公式,如果 github 出现公式乱码问题,请通过我的博客查看:h...
-
17
[NIPS 2018 论文笔记] 轨迹卷积网络 TrajectoryNet 1年前 ⋅...
-
13
NIPS 2018 论文解读集锦(11月30日更新) 2年前 ⋅...
-
19
alias-free-gan-pytorch Unofficial implementation of Alias-Free Generative Adversarial Networks. (https://arxiv.org/abs/2106.12423) This implementation contains a lot of my guesses, so I...
-
14
This article covers the technical paper by Sara Sabour, Nicholas Frosst and Geoffrey Hinton on Dynamic Routing between Capsules. In this article, we will describe the basic Capsule...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK