A few questions about imagenet trained model

User 5236 | 5/29/2016, 12:30:47 PM


I'm trying to use Dato's pretrained imagenet model (http://s3.amazonaws.com/GraphLab-Datasets/deeplearning/imagenetmodeliter45) to evaluate using internal layers as feature-vectors for classification.

I have some questions: 1. What is the architecture on which it is based? 2. Is there a way to programmatically (using the API) query its internal structure (i.e. get the type and parameters of each layer)? 3. I can see in the example on the site (http://blog.dato.com/deep-learning-blog-post) that the images need to be resized to 256X256X3. It seems to me that the input layer (node[0]?) is of size 200,3,227,227. I'm guessing (please correct me if I'm wrong) that that means mini-batch of 200 individual RGB images, each 227X227 pixels? if so, is the central crop being used for classification or is the image being further resized internally? Is random crop/mirroring used while training?

Thanks for any clarification, Ran


User 5159 | 5/30/2016, 2:05:47 AM

  1. It is AlexNet
  2. For new MXNet integration, you can visualize network by using symbol in model.symbol, get network parameter from model.arg_params. For old deep learning integration, you can get network inforamtion by calling net. layers
  3. This is default shape. For input image with shape 1, 3, 256, 256, it will automatically crop to 1, 3, 227, 227. For batch size, it will be changed.

User 5236 | 5/31/2016, 7:11:45 AM

As I currently want to use an imagenet pretrained network I assume that the new MXNet integration is not a viable option, as it is stated in https://dato.com/products/create/docs/graphlab.mxnet.html that "Pre-trained models are coming soon". Is that still correct? I hope that will change soon. So I'll have to use the old deep learning integration. However, if I run the following: import graphlab as gl model = gl.load_model('http://s3.amazonaws.com/GraphLab-Datasets/deeplearning/imagenet_model_iter45') print model.layers()

I get: AttributeError: 'NeuralNetClassifier' object has no attribute 'layers'

I think that your answer referred to a network architecture model where my question referred to a trained model such as the one I downloaded from your S3 bucket.

Lastly, regarding your answer to (3): will it crop the 227x227 from the center of the 256x256 image?

User 5159 | 5/31/2016, 10:46:18 PM

Because NeralNetClassifier is using old deep learning engine (doc is here: https://dato.com/products/create/docs/generated/graphlab.neuralnet_classifier.NeuralNetClassifier.html), MXNet document is not for old neural network classifier. We will support MXNet pretrained model very soon.