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

6 Ansichten (letzte 30 Tage)
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.

Antworten (1)

Ankitha Kollegal Arjun
Ankitha Kollegal Arjun am 28 Jul. 2017
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 Kommentar
Shuwei Qiu
Shuwei Qiu am 28 Jul. 2017
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!

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by