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

4 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2025 年 8 月 20 日
回答済み: MathWorks Support Team 2025 年 8 月 20 日

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

採用された回答

MathWorks Support Team
MathWorks Support Team 2025 年 8 月 20 日
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 件)

カテゴリ

Help Center および File Exchangeイメージを使用した深層学習 についてさらに検索

タグ

タグが未入力です。

Community Treasure Hunt

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

Start Hunting!