How to build a single-object localization CNN based-on an object classification network?

Hi all,
I'm new to convolutional neural network. I'm trying to use Alexnet to build a single object localization network, which I think is a simple problem in this area. What I did is to replace the last three layers of Alexnet, which are fullyConnnectedLayer(1000), softmaxLayer, and classificationLayer, with two layers, which are fullyConnectedLayer(4) and regressionLayer. Did I do it right? When I tried to train this network, the result seems wrong. Specifically, the Mini-batch Loss and the Mini-batch RMSE were NaN all the time. What would be the reason for this?
Thank you in advance!
Shuwei.

Réponses (1)

If the regression response values are very big and/or you have many regressors, your loss will become large, and it eventually leads to NaNs. This is the reason your Mini-batch Loss and the Mini-batch RMSE are NaN.
There are two workarounds which might fix the issue. Try one of the following:
1. Lower the initial learning rate. See more details on the initial learning rate here:
2. Normalize the responses so that the maximum value is 1. You can use the function "normc" for this:
Hope this helps!

1 commentaire

Thanks for your answer! I fixed this NaN issue using your first solution. But I have another issue which is the predicted bounding box from my network is always the same no matter what is the input image. I was wondering do you have any idea to fix this? Thank you very much in advance!

Connectez-vous pour commenter.

Catégories

En savoir plus sur Deep Learning Toolbox dans Centre d'aide et File Exchange

Question posée :

le 24 Juil 2017

Commenté :

le 28 Juil 2017

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by