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

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

Respuesta aceptada

MathWorks Support Team
MathWorks Support Team el 28 de Nov. de 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;

Más respuestas (0)

Etiquetas

Aún no se han introducido etiquetas.

Productos


Versión

R2017b

Community Treasure Hunt

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

Start Hunting!