- Train the network for more number of epochs.
- Vary the learning rate, starting with a larger number (1e-2) and gradually decreasing it after every n(5-10) epochs. The following weblink talks about how tto do this: Vary training Options for DL Network
- There aren't enough parameters in the network. Adding more neurons in the pen-ultimate fullyConnected layer can help solve this issue.
Why has my RCNN network stuck at 70% training accuracy
2 次查看(过去 30 天)
显示 更早的评论
Hi,
I have been trying to train an RCNN network for object detection. I have created a 16 layer training program, but no matter what I adjust in the layers and in the data the accuracy keeps on capping at 75% and I have not been able to correctly classify my target object. Below are the training data for the network as well as my layers. I would greatly apperciate any insight on this. Thanks.
layers = [
imageInputLayer([227 227 3])
convolution2dLayer(5,96,'Stride',4)
reluLayer
convolution2dLayer(3,32,'padding',2)
reluLayer
maxPooling2dLayer(2,'Stride',2)
convolution2dLayer(3,32)
reluLayer
convolution2dLayer(3,32)
reluLayer
fullyConnectedLayer(64)
reluLayer
dropoutLayer
fullyConnectedLayer(2)
softmaxLayer
classificationLayer];
|=========================================================================================|
| Epoch | Iteration | Time Elapsed | Mini-batch | Mini-batch | Base Learning|
| | | (seconds) | Loss | Accuracy | Rate |
|=========================================================================================|
| 1 | 1 | 1.07 | 0.6930 | 71.88% | 1.00e-06 |
| 2 | 50 | 52.68 | 0.6930 | 75.00% | 1.00e-06 |
| 4 | 100 | 107.11 | 0.6929 | 75.00% | 1.00e-06 |
| 5 | 150 | 160.94 | 0.6928 | 78.13% | 1.00e-06 |
| 7 | 200 | 214.72 | 0.6928 | 75.00% | 1.00e-06 |
| 9 | 250 | 271.34 | 0.6927 | 75.00% | 1.00e-06 |
| 10 | 300 | 327.56 | 0.6927 | 75.00% | 1.00e-06 |
| 10 | 310 | 338.58 | 0.6927 | 75.00% | 1.00e-06 |
|=========================================================================================|
0 个评论
回答(1 个)
Kushagr Gupta
2018-11-27
The primary reason that I can think is the "stride of 4" in the first convolution layer. Having such a huge stride reduces the amount of information for the next layer drastically, which will eventually prevent the network from learning some valuable features.
If the reason behind this design choice is to reduce the output activation size, it would be better acheived with gradually reducing the size over multiple convolution-relu layers.
There can be many other reasons behind the accuracy saturating at around 75% and here are some things that can be tried to avoid it.
Hope this helps
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!