jmrinaldi / tensorpack

A Neural Net Training Interface on TensorFlow

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

tensorpack

A neural net training interface based on TensorFlow.

Build Status badge

See some examples to learn about the framework:

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. Not focus on models.

    • There are already too many symbolic function wrappers. Tensorpack includes only a few common models, but you can use any other 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. Even on a tiny CNN example, the training runs 1.6x faster than the equivalent Keras code.

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

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

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

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

About

A Neural Net Training Interface on TensorFlow

License:Apache License 2.0


Languages

Language:Python 98.7%Language:C++ 0.7%Language:Shell 0.4%Language:Makefile 0.3%