1.Used Libraries, Datasets, and Models
1.1 Libraries
- TensorFlow (from Google): https://www.tensorflow.org/
- Theano (from U Montreal): https://github.com/Theano/Theano
- Caffe (from Berkeley): http://caffe.berkeleyvision.org/
- Torch (from Facebook): http://torch.ch/
- Nervana Graph (from Intel):
- MXNet (from Amazon): http://mxnet.io/
- Deeplearning4j (from Skymind): https://deeplearning4j.org/
- CNTK (from Microsoft): https://github.com/Microsoft/CNTK/wiki
- Keras (high-level API for both TensorFlow and Theano): https://keras.io/
- TensorFlow-Slim (high-level API for TensorFlow)
- Various other high-level APIs for Tensorflow, like TFLearn, TensorLayer
- Spark + Caffe and/or TensorFlow:
- SparkNet with Caffe as backend for each worker (from Berkeley):
1.2 Datasets
- ImageNet (large scale image-classification; pre-training)
- MS COCO (large scale object bounding box detection, image captioning, visual question answering)
- Cifar10 (small scale image classification)
- MNIST(small scale digits classification)
- Visual Genome https://visualgenome.org/ (large scale multi-task image understanding)
1.3 Models Structure
- Inception
- ResNet
- VGG
- AlexNet
- MobileNet
- SqueezeNet
1.3 Available pre-trained model
- tensorflow / slim
1) https://github.com/tensorflow/models/tree/master/slim (inceptionv1-v4; resnet50, 101, 152; vgg16,19; inception-resnet-v2) - caffe
1) https://github.com/BVLC/caffe/wiki/Model-Zoo (model zoo)
2) https://github.com/beniz/deepdetect/issues/89 (resnet, inception-v1, vgg) - keras
1) https://keras.io/applications/ (xception, vgg16, vgg19, resnet50, inceptionv3, mobilenet) - mxnet
1) model galaxy https://github.com/dmlc/mxnet-model-gallery
2. TensorFlow Tips
2.1 Using GPUs
By default, TensorFlow eats all your GPUs' memory (Yes, every single bit of them!), even when you explicitly specify which gpu(s) to use. To limit this "intended" behavior, one needs to set GPUOptions to your session, and we recommend the following. One can refer to here for the rationale.
gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0., allow_growth=True)config=tf.ConfigProto(gpu_options=gpu_options, <your other configuraions>)sess = tf.Session(config=config, <your other session settings>)
with sess.as_default():
<rest of session code>
The above has been tested under TF version r0.12 on DL Workstation 1, 2, 3. The testing code is here (tested with both single-gpu training and multi-gpu training). Note that the code is different from the example provided in TF examples, and it is modified by us to be compatible with r0.12.
As of 2017/01/11, experimenting such GPU setting with Keras using TF backend is inconclusive. Further investigation is needed.
2.1.1 To limit the GPU to use
Use CUDA_VISIBLE_DEVICES, see http://stackoverflow.com/questions/34775522/tensorflow-mutiple-sessions-with-mutiple-gpus
$ CUDA_VISIBLE_DEVICES=0 python my_script.py # Uses GPU 0.
$ CUDA_VISIBLE_DEVICES=1 python my_script.py # Uses GPU 1.
$ CUDA_VISIBLE_DEVICES=2,3 python my_script.py # Uses GPUs 2 and 3.