jcgarciaca
jcgarciaca

Reputation: 139

Network architecture in TensorFlow

I am training a network with tensorflow, but the results are not good enough. The model is not able to generalize, then it only detects a couple of objects (boxes) per image.

From the above, I am not sure how to identify if my network is too small/big for my purpose. Currently, I use Resnet101 but I don't know if it is actually suitable for me (I want to detect 5 object classes) or if I should change to ResNet50 or ResNet152 for instance.

Is there any way to choose it properly.

Thank you.

Upvotes: 0

Views: 112

Answers (1)

squadrick
squadrick

Reputation: 770

Before going ahead and implementing a network on your own, you could try to transfer learn a pre-trained model to your data.

Since you're tackling the problem of object detection and classification. You could take a look at some popular networks like Faster RCNN and YOLO.

There are a lot of things that could be off with your own trained model, and these are a few things I can think of off the top of my head:

  1. The distribution of training and testing data is different
  2. Your model has overfit your training data, you could try some method of regularisation to prevent this.
  3. Do a hyperparameter grid search for a few epochs each to find optimal values of learning rate, keep_prob, etc.
  4. Not enough training data for generalisation.
  5. As for the network size, fit the largest network you possibly can on your current training rig, and then start reducing its size to find the sweet spot trade-off between accuracy and compute intensity.

Upvotes: 1

Related Questions