/tensorpack

Neural Network Toolbox on TensorFlow

Primary LanguagePythonApache License 2.0Apache-2.0

tensorpack

Neural Network Toolbox on TensorFlow

Build Status

Docs & tutorials should be ready within a month. See some examples to learn about the framework:

Vision:

Reinforcement Learning:

Unsupervised Learning:

Speech / NLP:

The examples are not only for demonstration of the framework -- you can train them and reproduce the results in papers.

Features:

Describe your training task with three components:

  1. 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 and argscope simplify large models (vgg example).

  2. 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.
  3. 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
  • 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