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).
Dependencies:
- Python 2 or 3
- TensorFlow >= 1.0.0rc0
- Python bindings for OpenCV
- (optional) use tcmalloc if running with large data
pip install --user -U git+https://github.com/ppwwyyxx/tensorpack.git
pip install --user -r opt-requirements.txt # (some optional dependencies required by certain submodules, you can install later if prompted)