DoReFa-Net: train binary / low-bitwidth CNN on ImageNet
Train ResNet on ImageNet / Cifar10 / SVHN
Generative Adversarial Network(GAN) variants, including DCGAN, InfoGAN, Conditional GAN, WGAN, BEGAN, DiscoGAN, Image to Image, CycleGAN.
Fully-convolutional Network for Holistically-Nested Edge Detection(HED)
Spatial Transformer Networks on MNIST addition
Visualize CNN saliency maps
Similarity learning on MNIST
Deep Q-Network(DQN) variants on Atari games, including DQN, DoubleDQN, DuelingDQN.
Asynchronous Advantage Actor-Critic(A3C) with demos on OpenAI Gym
Speech / NLP:
LSTM-CTC for speech recognition
char-rnn for fun
LSTM language model on PennTreebank
The examples are not only for demonstration of the framework -- you can train them and reproduce the results in papers.
It's Yet Another TF wrapper, but different in:
Not focus on models.
There are already too many symbolic function wrappers. Tensorpack includes only a few common models, and helpful tools such as LinearWrap to simplify large models. But you can use any other wrappers within tensorpack, such as sonnet/Keras/slim/tflearn/tensorlayer/....
Focus on training speed.
Tensorpack trainer is almost always faster than feed_dict based wrappers. Even on a tiny CNN example, the training runs 2x faster than the equivalent Keras code.
Data-parallel multi-GPU training is off-the-shelf to use. It is as fast as Google's benchmark code.
Data-parallel distributed training is off-the-shelf to use. It is as slow as Google's benchmark code.
Focus on large datasets.
It's painful to read/preprocess data from TF. Use DataFlow to load large datasets (e.g. ImageNet) in pure Python with multi-process prefetch.
DataFlow has a unified interface, so you can compose and reuse them to perform complex preprocessing.
Interface of extensible Callbacks. Write a callback to implement everything you want to do apart from the training iterations, and enable it with one line of code. Common examples include:
Change hyperparameters during training
Print some tensors of interest
Run inference on a test dataset
Run some operations once a while
Send loss to your phone
Python 2 or 3
TensorFlow >= 1.0.0 (>=1.1.0 for Multi-GPU)
Python bindings for OpenCV (Optional, but required by a lot of features)
pip install -U git+https://github.com/ppwwyyxx/tensorpack.git
# or add `--user` to avoid system-wide installation.