/tensorpack

Neural Network Toolbox on TensorFlow

Primary LanguagePythonApache License 2.0Apache-2.0

tensorpack

Neural Network Toolbox on TensorFlow

Build Status badge

Tutorials are not fully finished. 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. DataFlow. process data in Python, with ease and speed.

    • Allows you to process data in Python without blocking the training, by multiprocess prefetch & TF Queue prefetch.
    • All data producer has a unified interface, you can compose and reuse them to perform complex preprocessing.
  2. Callbacks, customizable, like tf.train.SessionRunHook but more than that. Includes 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
  3. Model, or graph. models/ has some scoped abstraction of common models, but you can just use symbolic functions in tensorflow or slim/tflearn/tensorlayer/etc. LinearWrap and argscope simplify large models (e.g. vgg example).

With the above components defined, tensorpack trainer runs the training iterations for you. Trainer was written with performance in mind: Even on a small CNN example, the training runs 2x faster than the equivalent Keras code.

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).

Install:

Dependencies:

  • Python 2 or 3
  • TensorFlow >= 1.0.0
  • Python bindings for OpenCV
pip install --user -U git+https://github.com/ppwwyyxx/tensorpack.git