How can I freeze specific weights of Neural network model?

43 vues (au cours des 30 derniers jours)
Abdelwahab Afifi
Abdelwahab Afifi le 14 Juin 2020
Modifié(e) : Ahmad Gad le 25 Août 2021
I need to set some specific weights before training, and keep these weights fixed during training

Réponse acceptée

Utkarsh
Utkarsh le 18 Juin 2020
Hi Abdelwahab,
If you wish to assign those weights in the beginning and keep them as constant, you can set the ‘WeightLearnRateFactor’ property as 0 (which defines the learning rate for that layer) for those layers.
For example,
convolution2dLayer(3,1,'Padding',[1 1 1 1],'WeightLearnRateFactor',0);
You may refer to this link to learn more about such properties.
Or if you want to fix certain weights to some layers in a trained network , then directly assign those layers the values after training the network.
net = alexnet; % or your pre-trained network
layer = net.Layers(1) % here 1 can be replaced with the layer number you wish to change
layer.Weights = randn(11,11,3,96); %the weight matrix which you wish to assign
  1 commentaire
Ahmad Gad
Ahmad Gad le 25 Août 2021
Modifié(e) : Ahmad Gad le 25 Août 2021
Can I do the same for a shallow network? And using which function?

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Deep Learning Toolbox dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by