事前学習済みネットワ​ークの特定層の重みま​で一括して凍結する方​法はありますか?

4 views (last 30 days)
MathWorks Support Team
MathWorks Support Team on 20 Aug 2025

imagePretrainedNetwork でロードしたdlnetworkオブジェクトの 特定の層や複数層に対して重みやバイアスを一括して凍結するにはどうすればよいですか?
たとえば、AlexNetのfc6層までのバイアスの値を凍結する方法を教えてください。

Accepted Answer

MathWorks Support Team
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

More Answers (0)

Categories

Find more on イメージを使用した深層学習 in Help Center and File Exchange

Tags

No tags entered yet.

Community Treasure Hunt

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

Start Hunting!