/tensorpack

A Neural Net Training Interface on TensorFlow

Primary LanguagePythonApache License 2.0Apache-2.0

tensorpack

A neural net training interface based on TensorFlow.

Build Status ReadTheDoc Gitter chat

See some examples to learn about the framework. Everything runs on multiple GPUs, because why not?

Vision:

Reinforcement Learning:

Speech / NLP:

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

Features:

It's Yet Another TF wrapper, but different in:

  1. It's not a model wrapper.

    • There are already too many symbolic function wrappers. Tensorpack includes only a few common models, but you can use any other model wrappers within tensorpack, such as sonnet/Keras/slim/tflearn/tensorlayer/....
  2. Focus on training speed.

    • Speed comes for free with tensorpack -- it uses TensorFlow in the correct way. On various CNNs, it runs 1.5~1.7x faster than the equivalent Keras code.

    • Data-parallel multi-GPU/distributed training is off-the-shelf to use. It is as fast as Google's official benchmark.

    • See tensorpack/benchmarks for some benchmark scripts.

  3. Focus on large datasets.

    • It's painful to read/preprocess data through TF. tensorpack helps you load large datasets (e.g. ImageNet) in pure Python with autoparallelization. It also naturally works with TF Queues or tf.data.
  4. Interface of extensible Callbacks. Write a callback to implement everything you want to do apart from the training iterations, and enable it with one line of code. Common examples include:

    • Change hyperparameters during training
    • Print some tensors of interest
    • Monitor GPU utilization
    • Send error rate to your phone

See tutorials to know more about these features.

Install:

Dependencies:

  • Python 2 or 3
  • TensorFlow >= 1.0.0 (>=1.1.0 for Multi-GPU)
  • Python bindings for OpenCV (Optional, but required by a lot of features)
pip install -U git+https://github.com/ppwwyyxx/tensorpack.git
# or add `--user` to avoid system-wide installation.

If you only want to use tensorpack.dataflow alone as a data processing library, TensorFlow is also optional.