Answers.Body: <p>You could look for papers that trained models on the <a href="https://storage.googleapis.com/openimages/web/index.html" rel="nofollow noreferrer">Open Image Dataset</a>, which contains around 6k classes, so pretty close to your final use case.</p>
  <p>Regarding the dataset size, most datasets include at least 1k examples per class, this is a rule of thumb more than a mathematical restriction. Of course the more the better, like is always the case in machine learning.</p>
  <p>The GPU question is an ill posed one. All framework by now support more or less any GPU, nvidia being the choice of preference when it comes to driver compatibility, especially in cloud platforms like aws or google gloud. The specific type is really up to you. If you have a limited amount of time to allocate for training then definitely use as many GPUs as you can afford. If time is not a constrain any GPU will do the work just fine.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-09-28T20:32:14.887Z
Answers.Text: For good performance, you want a GPU with enough memory to fit the entire model in its memory, and I guess ideally double or triple that - not sure what amount of overhead is needed for training. If you're training a model from scratch you get to choose how big it is.
Answers.UserDisplayName: Criticize SE actions means ban
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-09-29T07:05:48.527Z
Answers.Text: You're actually right. I'm used to google cloud and aws where on average every GPU has a lest 12 or 16 GB of memory, more than enough for any model (with exceptions like GPT and similar, which won't fit in any card anyway). But indeed a 3GB card or other small gaming card would probably be limiting, good call!
Answers.UserDisplayName: Edoardo Guerriero
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-09-27T11:42:21.997Z
Answers.LastActivityDate: 2022-09-27T11:42:21.997Z
Answers.UserDisplayName: Edoardo Guerriero
Body: <p>I am trying to developp an image classifier that would have more than 10 000 classes but I don't know what kind of neural network I should use ?</p>
  <p>Some Other questions arise from this one :</p>
  <ul>
  <li>How big should be my training dataset ? (10,100,1000 or even more image/classe)</li>
  <li>What kinf of GPU should be used to train/run such a network ?</li>
  </ul>
  <p>Thanks in advance !</p>
  
Tags: <neural-networks><image-recognition><training-datasets><gpu>
Title: What kind of neural network and GPU should I use to classify images into > 10 000 classes?
UserDisplayName: Louis Delporte
ThreadText: # What kind of neural network and GPU should I use to classify images into > 10 000 classes?
  
  (Asked by: username_0 on 2022-09-27)
  
  I am trying to developp an image classifier that would have more than 10 000 classes but I don't know what kind of neural network I should use ?
  
  Some Other questions arise from this one :
  
  * How big should be my training dataset ? (10,100,1000 or even more image/classe)
  * What kinf of GPU should be used to train/run such a network ?
  
  Thanks in advance !
  
  **Tags:** neural-networks, image-recognition, training-datasets, gpu
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2022-09-27. Score: 1
  
  You could look for papers that trained models on the [Open Image Dataset](https://storage.googleapis.com/openimages/web/index.html), which contains around 6k classes, so pretty close to your final use case.
  
  Regarding the dataset size, most datasets include at least 1k examples per class, this is a rule of thumb more than a mathematical restriction. Of course the more the better, like is always the case in machine learning.
  
  The GPU question is an ill posed one. All framework by now support more or less any GPU, nvidia being the choice of preference when it comes to driver compatibility, especially in cloud platforms like aws or google gloud. The specific type is really up to you. If you have a limited amount of time to allocate for training then definitely use as many GPUs as you can afford. If time is not a constrain any GPU will do the work just fine.
  
  > **Comments:**
  > **username_2**: For good performance, you want a GPU with enough memory to fit the entire model in its memory, and I guess ideally double or triple that - not sure what amount of overhead is needed for training. If you're training a model from scratch you get to choose how big it is.  
  > **username_1**: You're actually right. I'm used to google cloud and aws where on average every GPU has a lest 12 or 16 GB of memory, more than enough for any model (with exceptions like GPT and similar, which won't fit in any card anyway). But indeed a 3GB card or other small gaming card would probably be limiting, good call!  
  
  ---
  
  