Image classification, narrow domain with custom labels Let's suppose I would like to classify motorbikes by model.


*

*There are couple of hundreds models of motorbikes I'm interested in.

*I have hundreds of labelled pictures for each motorbike
model. 


*

*There are also unlabelled set of motorbikes pictures, it's about 100x times bigger than the labelled set.



Can you please point me to the practical example that demonstrates how to train model on your data and then use it to classify images? It needs to be a deep learning model, not simple logistic regression.
I'm not sure about it, but it seems like I can't use pre-trained neural net because it has been trained on wide range of objects like cat, human, cars etc. They may be not too good at distinguishing the motorbike nuances I'm interested in.
I found couple of such examples (tensorflow has one), but sadly, all of them were using pre-trained model. None of it had example how to train it on your own dataset.
 A: Here's one tutorial on training a deep convnet from scratch in Keras. There should be plenty of other examples on the web.
You could still use a pre-trained model for this, and just re-train some of the later layers with your dataset to improve its specificity for your task. This works because earlier layers usually contain more general feature extractors, edge-detectors, etc. See here for more info.
100 images per class is not very much training data, so I would say to get reasonable performance, transferring knowledge from a pre-trained model is probably going to be necessary. But given the nature of your problem there might be a lot of similar motorcycle-like features that could be shared between the classes. So perhaps the required number of images per class for decent performance is reduced in your case.
To take advantage of your unlabeled data as well, you can use a semi-supervised learning approach. I would recommend the recent Virtual Adversarial Training, which achieves great performance on a number of benchmarks. I have also seen it provide a performance boost in one real-world application. Plus it's fairly easy to add to an existing model, and the authors have provided a Tensorflow implementation.
It sounds like you might not have too much experience with deep learning. I might just warn that what you are proposing here is not really an easy problem to solve - 100 classes is a lot! You will need to understand the basics well to get anywhere. You will also need a solid GPU.
