Tensorpack is a training interface based on TensorFlow.
See some examples to learn about the framework. Everything runs on multiple GPUs, because why not?
- Train ResNet/SE-ResNet on ImageNet
- Train Faster-RCNN / Mask-RCNN on COCO object detection
- Generative Adversarial Network(GAN) variants, including DCGAN, InfoGAN, Conditional GAN, WGAN, BEGAN, DiscoGAN, Image to Image, CycleGAN.
- DoReFa-Net: train binary / low-bitwidth CNN on ImageNet
- 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
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:
-
Focus on training speed.
-
Speed comes for free with tensorpack -- it uses TensorFlow in the correct way with no extra overhead. 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. You cannot beat its speed unless you're a TensorFlow expert.
-
See tensorpack/benchmarks for some benchmark scripts.
-
-
Focus on large datasets.
- It's painful to read/preprocess data through TF. Tensorpack helps you load large datasets (e.g. ImageNet) in pure Python with autoparallelization.
-
It's not a model wrapper.
- There are already too many symbolic function wrappers. Tensorpack includes only a few common models, but you can use any other wrappers within tensorpack, including sonnet/Keras/slim/tflearn/tensorlayer/....
See tutorials to know more about these features.
Dependencies:
- Python 2.7 or 3
- TensorFlow >= 1.2.0
- Python bindings for OpenCV (Optional, but required by a lot of features)
# install git, then:
pip install -U git+https://github.com/ppwwyyxx/tensorpack.git
# or add `--user` to avoid system-wide installation.
If you only want to use tensorpack.dataflow
alone as a data processing library, TensorFlow is also optional.