Dropout Layer Before Fully connected Layer
4 次查看(过去 30 天)
显示 更早的评论
Hi guys
I am asking if it is possible to make dropout layer before FC layer
Example below:-
layers = [
imageInputLayer([64 64 3],"Name","imageinput","Normalization","none")
convolution2dLayer([5 5],4,"Name","conv_1","Padding","same")
reluLayer("Name","relu_1")
maxPooling2dLayer([2 2],"Name","maxpool_1","Padding","same","Stride",[2 2])
convolution2dLayer([3 3],8,"Name","conv_2","Padding","same")
reluLayer("Name","relu_2")
maxPooling2dLayer([2 2],"Name","maxpool_2","Padding","same","Stride",[2 2])
convolution2dLayer([3 3],32,"Name","conv_3","Padding","same")
reluLayer("Name","relu_3")
averagePooling2dLayer([2 2],"Name","avgpool2d_1","Padding","same","Stride",[2 2])
convolution2dLayer([3 3],64,"Name","conv_4","Padding","same")
reluLayer("Name","relu_4")
averagePooling2dLayer([2 2],"Name","avgpool2d_2","Padding","same","Stride",[2 2])
dropoutLayer(0.51,'Name','drop1')
fullyConnectedLayer(2,"Name","fc")
softmaxLayer("Name","softmax")
classificationLayer("Name","classoutput")];
Best,
0 个评论
采纳的回答
Shashank Gupta
2020-1-20
Hi Abdussalam,
Yes, you can use Dropout layer before the fully connected layer, Dropout is just a regularization technique for preventing overfitting in the network, it can be applied anywhere regardless of FC or Conv but again it is generally recommended to use it after FC layer because they are the ones with the greater number of parameter and thus they are likely to excessively co-adapting themselves causing Overfitting.
However, it’s a stochastic regularization technique, you can really place it everywhere. Usually placed on the layer with a greater number of parameters, but no denies you from applying anywhere.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Web Services 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!