Modifying ClassNames parameter for clssificationLayer in Matlab 2017a

5 views (last 30 days)
Andreia Lazarec
Andreia Lazarec on 26 Mar 2022
I want to construct the output classification layer for a rcnn in Matlab 2017a. When I try to use the function classificationLayer I can only modify/set the Name of the layer and no other parameters. Also, I can't access the parameters by .ClassNames because they are read only and probably can be set just during declaration.
I saw that there exist other output layers (made by Matlab) where these parameters have different values such as in:
load('rcnnStopSigns.mat','layers');
output_layer = layers(15,1);
Do you have any idea how can I change these parameters?

Answers (1)

Srivardhan Gadila
Srivardhan Gadila on 6 Apr 2022
It is not possible to manually set or modify the ClassNames property of the classificationLayer until MATLAB version R2018a, it is automatically set by the trainNetwork function in the trained network.
But it is possible from R2018b onwards, you can specify the class names using the Classes name-value pair argument. If you want to replace the class names in the layers/layerGraph of an already trained network, then you can create new instance of the layer by specifying class names as mentioned above and replace the exisitng layer with the newly created layer.
Refer to the following documentation pages for more information:
  1. R2017a: https://mathworks.com/help/releases/R2017a/nnet/ref/classificationlayer.html
  2. R2018a: https://mathworks.com/help/releases/R2018a/nnet/ref/classificationlayer.html
  3. R2018b: https://mathworks.com/help/releases/R2018b/deeplearning/ref/classificationlayer.html
  4. Latest release: https://mathworks.com/help/deeplearning/ref/classificationlayer.html

Community Treasure Hunt

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

Start Hunting!

Translated by