How can I freeze specific weights of Neural network model?

75 ビュー (過去 30 日間)
Abdelwahab Afifi
Abdelwahab Afifi 2020 年 6 月 14 日
編集済み: Ahmad Gad 2021 年 8 月 25 日
I need to set some specific weights before training, and keep these weights fixed during training


Utkarsh 2020 年 6 月 18 日
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 件のコメント
Ahmad Gad
Ahmad Gad 2021 年 8 月 25 日
編集済み: Ahmad Gad 2021 年 8 月 25 日
Can I do the same for a shallow network? And using which function?


その他の回答 (0 件)

Community Treasure Hunt

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

Start Hunting!

Translated by