事前学習済みネットワークの特定層の重みまで一括して凍結する方法はありますか?
4 views (last 30 days)
Show older comments
MathWorks Support Team
on 20 Aug 2025
Answered: MathWorks Support Team
on 20 Aug 2025
imagePretrainedNetwork でロードしたdlnetworkオブジェクトの 特定の層や複数層に対して重みやバイアスを一括して凍結するにはどうすればよいですか?
たとえば、AlexNetのfc6層までのバイアスの値を凍結する方法を教えてください。
Accepted Answer
MathWorks Support Team
on 20 Aug 2025
imagePretrainedNetwork で取得したdlnetworkオブジェクトの学習パラメータに対する学習率の設定は、setLearnRateFactor()メソッドを利用します。このメソッドは個別の層とパラメータごとに指定する必要があるため、複数層に一括で設定したい場合はforループなどを使って繰り返し処理を行います。
例えば、AlexNetのfc6層までのすべてのパラメータの学習率を0に設定するには、以下のようなコードを使用します。
% AlexNet モデルのロード
[net,classNames] = imagePretrainedNetwork('alexnet');
% Learnable Parametes 一覧取得
tbl = net.Learnables;
% fc6層まで LearnRate を 0 に設定
for n = 1:12
net = setLearnRateFactor(net, tbl.Layer(n), tbl.Parameter(n), 0)
end
0 Comments
More Answers (0)
See Also
Categories
Find more on イメージを使用した深層学習 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!