特定の畳み込み層や全​結合層に対して、重み​やバイアスを更新させ​ないはありますか?

8 vues (au cours des 30 derniers jours)
MathWorks Support Team
MathWorks Support Team le 28 Nov 2017
AlexNet等の事前学習済モデルを使って、転移学習しようと考えています。
CNNで学習した重みデータを有効に活用するため、 特徴抽出部(Conv/MaxPool/ReLU)の層までの重みデータはそのままに、分類部(FC)の層のみを変更したいと思います。
特徴抽出部の重みを変えずに、FC層のみの再学習をCNNで行う方法はありますか?
 

Réponse acceptée

MathWorks Support Team
MathWorks Support Team le 28 Nov 2017
Convolution2DLayer() や FullyConnectedLayer() には、 
WeightLearnRateFactor および BiasLearnRateFactor プロパティがあります。
特定の畳み込み層のみ、重み係数を更新させないようにする場合は、下記のように その層に対して、WeightLearnRateFactor および BiasLearnRateFactor を 0 値に 設定します。
 
net = alexnet;
layersTransfer = net.Layers(1:end-3);
numClasses = numel(categories(merchImagesTrain.Labels));
layers = [...
layersTransfer
fullyConnectedLayer(numClasses,'WeightLearnRateFactor',1,'BiasLearnRateFactor',1)
softmaxLayer
classificationLayer];
layers(2).WeightLearnRateFactor = 0;
layers(2).BiasLearnRateFactor = 0;
layers(6).WeightLearnRateFactor = 0;
layers(6).BiasLearnRateFactor = 0;
layers(10).WeightLearnRateFactor = 0;
layers(10).BiasLearnRateFactor = 0;
layers(12).WeightLearnRateFactor = 0;
layers(12).BiasLearnRateFactor = 0;
layers(14).WeightLearnRateFactor = 0;
layers(14).BiasLearnRateFactor = 0;

Plus de réponses (0)

Tags

Aucun tag saisi pour le moment.

Produits


Version

R2017b

Community Treasure Hunt

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

Start Hunting!