tensorpack

时间:2022-06-04
本文章向大家介绍tensorpack,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

tensorpack

Neural Network Toolbox on TensorFlow.

See some examples to learn about the framework:

Vision:

  • DoReFa-Net: train binary / low-bitwidth CNN on ImageNet
  • Train ResNet on ImageNet / Cifar10 / SVHN
  • Generative Adversarial Network(GAN) variants, including DCGAN, InfoGAN, Conditional GAN, WGAN, BEGAN, DiscoGAN, Image to Image, CycleGAN.
  • Fully-convolutional Network for Holistically-Nested Edge Detection(HED)
  • Spatial Transformer Networks on MNIST addition
  • Visualize CNN saliency maps
  • Similarity learning on MNIST

Reinforcement Learning:

  • Deep Q-Network(DQN) variants on Atari games, including DQN, DoubleDQN, DuelingDQN.
  • Asynchronous Advantage Actor-Critic(A3C) with demos on OpenAI Gym

Speech / NLP:

  • LSTM-CTC for speech recognition
  • char-rnn for fun
  • LSTM language model on PennTreebank

The 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, and helpful tools such as LinearWrap to simplify large models. But you can use any other wrappers within tensorpack, such as sonnet/Keras/slim/tflearn/tensorlayer/....
  2. Focus on training speed.
    • Tensorpack trainer is almost always faster than feed_dict based wrappers. Even on a tiny CNN example, the training runs 2x faster than the equivalent Keras code.
    • Data-parallel multi-GPU training is off-the-shelf to use. It is as fast as Google's benchmark code.
    • Data-parallel distributed training is off-the-shelf to use. It is as slow as Google's benchmark code.
  3. Focus on large datasets.
    • It's painful to read/preprocess data from TF. Use DataFlow to load large datasets (e.g. ImageNet) in pure Python with multi-process prefetch.
    • DataFlow has a unified interface, so you can compose and reuse them to perform complex preprocessing.
  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
    • Run inference on a test dataset
    • Run some operations once a while
    • Send loss to your phone

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.