See some [examples](examples) to learn about the framework. Everything runs on multiple GPUs, because why not?
### Vision:
+[Train ResNet/SE-ResNet on ImageNet](examples/ResNet)
+[Train Faster-RCNN / Mask-RCNN on COCO object detection](examples/FasterRCNN)
+[Generative Adversarial Network(GAN) variants](examples/GAN), including DCGAN, InfoGAN, Conditional GAN, WGAN, BEGAN, DiscoGAN, Image to Image, CycleGAN.
+[DoReFa-Net: train binary / low-bitwidth CNN on ImageNet](examples/DoReFa-Net)
+[Fully-convolutional Network for Holistically-Nested Edge Detection(HED)](examples/HED)
+[Spatial Transformer Networks on MNIST addition](examples/SpatialTransformer)
+[Visualize CNN saliency maps](examples/Saliency)
+[Similarity learning on MNIST](examples/SimilarityLearning)
### Reinforcement Learning:
+[Deep Q-Network(DQN) variants on Atari games](examples/DeepQNetwork), including DQN, DoubleDQN, DuelingDQN.
+[Asynchronous Advantage Actor-Critic(A3C) with demos on OpenAI Gym](examples/A3C-Gym)
### Speech / NLP:
+[LSTM-CTC for speech recognition](examples/CTC-TIMIT)
+[char-rnn for fun](examples/Char-RNN)
+[LSTM language model on PennTreebank](examples/PennTreebank)
Examples are not only for demonstration of the framework -- you can train them and reproduce the results in papers.
## Features:
It's Yet Another TF wrapper, but different in:
...
...
@@ -39,7 +16,6 @@ It's Yet Another TF wrapper, but different in:
On various CNNs, it runs 1.5~1.7x faster than the equivalent Keras code.
+ Data-parallel multi-GPU training is off-the-shelf to use. It is as fast as Google's [official benchmark](https://www.tensorflow.org/performance/benchmarks).
You cannot beat its speed unless you're a TensorFlow expert.
+ See [tensorpack/benchmarks](https://github.com/tensorpack/benchmarks) for some benchmark scripts.
...
...
@@ -54,6 +30,32 @@ It's Yet Another TF wrapper, but different in:
See [tutorials](http://tensorpack.readthedocs.io/en/latest/tutorial/index.html) to know more about these features.
## [Examples](examples):
Instead of showing you 10 different ways to train MNIST to random accuracy,
[tensorpack examples](examples) faithfully replicate papers and care about performance.
And everything runs on multiple GPUs. Some highlights:
### Vision:
+[Train ResNet on ImageNet](examples/ResNet)
+[Train Faster-RCNN / Mask-RCNN on COCO object detection](examples/FasterRCNN)
+[Generative Adversarial Network(GAN) variants](examples/GAN), including DCGAN, InfoGAN, Conditional GAN, WGAN, BEGAN, DiscoGAN, Image to Image, CycleGAN.
+[DoReFa-Net: train binary / low-bitwidth CNN on ImageNet](examples/DoReFa-Net)
+[Fully-convolutional Network for Holistically-Nested Edge Detection(HED)](examples/HED)
+[Spatial Transformer Networks on MNIST addition](examples/SpatialTransformer)
+[Visualize CNN saliency maps](examples/Saliency)
+[Similarity learning on MNIST](examples/SimilarityLearning)
### Reinforcement Learning:
+[Deep Q-Network(DQN) variants on Atari games](examples/DeepQNetwork), including DQN, DoubleDQN, DuelingDQN.
+[Asynchronous Advantage Actor-Critic(A3C) with demos on OpenAI Gym](examples/A3C-Gym)
### Speech / NLP:
+[LSTM-CTC for speech recognition](examples/CTC-TIMIT)
+[char-rnn for fun](examples/Char-RNN)
+[LSTM language model on PennTreebank](examples/PennTreebank)
Training examples with __reproducible performance__.
__"Reproduce" should always means reproduce performance__.
__The word "reproduce" should always means reproduce performance__.
Reproducing a method is usually easy, but you don't know whether you've made mistakes, because wrong code will often appear to work.
Reproducing __performance__ results is what really matters, and is something that's hardly seen on github.
See [Unawareness of Deep Learning Mistakes](https://medium.com/@ppwwyyxx/unawareness-of-deep-learning-mistakes-d5b5774da0ba).
...
...
@@ -11,11 +11,11 @@ See [Unawareness of Deep Learning Mistakes](https://medium.com/@ppwwyyxx/unaware
## Getting Started:
These examples don't have meaningful performance numbers. They are supposed to be just demos.
+[An illustrative mnist example with explanation of the framework](mnist-convnet.py)
+ The same mnist example using [tf-slim](mnist-tfslim.py), and [with weights visualizations](mnist-visualizations.py)
+ A tiny [Cifar ConvNet](cifar-convnet.py) and [SVHN ConvNet](svhn-digit-convnet.py)
+[An illustrative MNIST example with explanation of the framework](Basics/mnist-convnet.py)
+ The same MNIST example written with [tf.layers](Basics/mnist-tflayers.py), [tf-slim](Basics/mnist-tfslim.py), and [with weights visualizations](Basics/mnist-visualizations.py)
+ A tiny [Cifar ConvNet](Basics/cifar-convnet.py) and [SVHN ConvNet](Basics/svhn-digit-convnet.py)
+[A boilerplate file to start with, for your own tasks](boilerplate.py)
+ If you've used Keras, check out [Keras examples](keras).
+ If you've used Keras, check out [Keras examples](keras)