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. Instead of showing tiny CNNs trained on MNIST/Cifar10, we provide training scripts that reproduce well-known papers.
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
- Unsupervised learning with Momentum Contrast (MoCo)
- 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 3.3+.
- Python bindings for OpenCV. (Optional, but required by a lot of features)
- TensorFlow ≥ 1.5, < 2
- TF is not not required if you only want to use
tensorpack.dataflow
alone as a data processing library - TF2 is supported if used in graph mode (and use
tf.compat.v1
when needed)
- TF is not not required if you only want to use
pip install --upgrade git+https://github.com/tensorpack/tensorpack.git
# or add `--user` to install to user's local directories
Please note that tensorpack is not yet stable. If you use tensorpack in your code, remember to mark the exact version of tensorpack you use as your dependencies.
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}
}