Neural Network Toolbox on TensorFlow
Docs & tutorials should be ready within a month. See some examples to learn about the framework:
- DoReFa-Net: train binary / low-bitwidth CNN on ImageNet
- Train ResNet on ImageNet / Cifar10 / SVHN
- InceptionV3 on ImageNet
- Fully-convolutional Network for Holistically-Nested Edge Detection(HED)
- Spatial Transformer Networks on MNIST addition
- Visualize Saliency Maps by Guided ReLU
- Similarity Learning on MNIST
- Deep Q-Network(DQN) variants on Atari games
- Asynchronous Advantage Actor-Critic(A3C) with demos on OpenAI Gym
- Generative Adversarial Network(GAN) variants, including DCGAN, InfoGAN, Conditional GAN, Image to Image.
The examples are not only for demonstration of the framework -- you can train them and reproduce the results in papers.
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 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.
-
Callbacks, including everything you want to do apart from the training iterations, such as:
- 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
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).
- Python 2 or 3
- TensorFlow >= 1.0.0rc0
- Python bindings for OpenCV
- other requirements:
pip install --user -r requirements.txt
pip install --user -r opt-requirements.txt # (some optional dependencies required by certain submodule, you can install later if needed)
- Enable
import tensorpack
:
export PYTHONPATH=$PYTHONPATH:`readlink -f path/to/tensorpack`
(or use greadlink
from coreutils
brew package if you're on OSX)
- Use tcmalloc if running with large data