Neural Network Toolbox on TensorFlowww
See some examples to learn about the framework. You can train them and reproduce the performance... not just to see how to write code.
- DoReFa-Net: training binary / low bitwidth CNN on ImageNet
- ResNet for ImageNet/Cifar10/SVHN classification
- InceptionV3 on ImageNet
- Fully-convolutional Network for Holistically-Nested Edge Detection(HED)
- Spatial Transformer Network on MNIST addition
- Generative Adversarial Network(GAN) variants
- Deep Q-Network(DQN) variants on Atari games
- Asynchronous Advantage Actor-Critic(A3C) with demos on OpenAI Gym
- char-rnn language model
Describe your training task with three components:
-
Model, or graph.
models/
has some scoped abstraction of common models, but you can simply use any symbolic functions available in tensorflow, or most functions in slim/tflearn/tensorlayer.LinearWrap
andargscope
simplify large models (vgg example). -
DataFlow. tensorpack allows and encourages complex data processing.
- All data producer has an unified
generator
interface, allowing them to be composed to perform complex preprocessing. - Use Python to easily handle any data format, yet still keep good performance thanks to multiprocess prefetch & TF Queue prefetch. For example, InceptionV3 can run in the same speed as the official code which reads data by TF operators.
- All data producer has an unified
-
Callbacks, including everything you want to do apart from the training iterations, such as:
- Change hyperparameters during training
- Print some variables of interest
- Run inference on a test dataset
- Run some operations once a while
- Send the accuracy to your phone
With the above components defined, tensorpack trainer will run the training iterations for you. Multi-GPU training is off-the-shelf by simply switching the trainer. You can also define your own trainer for non-standard training (e.g. GAN).
The components are designed to be independent. You can use only Model or DataFlow in your project.
- Python 2 or 3
- TensorFlow >= 0.10
- Python bindings for OpenCV
- other requirements:
pip install --user -r requirements.txt
pip install --user -r opt-requirements.txt (some optional dependencies, you can install later if needed)
- Enable
import tensorpack
:
export PYTHONPATH=$PYTHONPATH:`readlink -f path/to/tensorpack`