Tensorpack is a neural network training interface based on TensorFlow.
It's Yet Another TF high-level API, with speed, and flexibility built together.
-
Focus on training speed.
-
Speed comes for free with Tensorpack -- it uses TensorFlow in the efficient way with no extra overhead. On common CNNs, it runs training 1.2~5x faster than the equivalent Keras code. Your training can probably gets faster if written with Tensorpack.
-
Data-parallel multi-GPU/distributed training strategy is off-the-shelf to use. It scales as well as Google's official benchmark.
-
See tensorpack/benchmarks for some benchmark scripts.
-
-
Focus on large datasets.
- You don't usually need
tf.data
. Symbolic programming often makes data processing harder. Tensorpack helps you efficiently process large datasets (e.g. ImageNet) in pure Python with autoparallelization.
- You don't usually need
-
It's not a model wrapper.
- There are too many symbolic function wrappers in the world. Tensorpack includes only a few common models. But you can use any symbolic function library inside Tensorpack, including tf.layers/Keras/slim/tflearn/tensorlayer/....
See tutorials and documentations to know more about these features.
We refuse toy examples. We refuse low-quality implementations. Unlike most open source repos which only implement papers, Tensorpack examples faithfully reproduce papers, demonstrating its flexibility for actual research.
- Train ResNet and other models on ImageNet.
- Train Mask/Faster R-CNN 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
Dependencies:
- Python 2.7 or 3.3+. Python 2.7 is supported until it retires in 2020.
- Python bindings for OpenCV. (Optional, but required by a lot of features)
- TensorFlow ≥ 1.3, < 2. (Optional, if you only want to use
tensorpack.dataflow
alone as a data processing library)
pip install --upgrade git+https://github.com/tensorpack/tensorpack.git
# or add `--user` to install to user's local directories
If you use Tensorpack in your research or wish to refer to the examples, please cite with:
@misc{wu2016tensorpack,
title={Tensorpack},
author={Wu, Yuxin and others},
howpublished={\url{https://github.com/tensorpack/}},
year={2016}
}