ホームページ >バックエンド開発 >Python チュートリアル >小さなデータセットで MLP モデルを微調整しても、事前トレーニングされた重みと同じテスト精度が維持されるのはなぜですか?

小さなデータセットで MLP モデルを微調整しても、事前トレーニングされた重みと同じテスト精度が維持されるのはなぜですか?

WBOY
WBOY転載
2024-02-10 21:36:04638ブラウズ

为什么在小数据集上微调 MLP 模型,仍然保持与预训练权重相同的测试精度?

質問の内容

6,000 個のデータ サンプルでトレーニングするための単純な mlp モデルを設計しました。

リーリー

そしてモデルがインスタンス化されました

リーリー

およびハイパーパラメータ:

リーリー

私の実装は主にこの質問に従います。モデルを事前トレーニング済みの重み model_weights.pth として保存しました。

テスト データ セットの

model の精度は 96.80% です。

次に、モデルを微調整しようとしているサンプル (finetune_loader 内) がさらに 50 個あります。 リーリー

確認したところ、精度はモデルを 50 サンプルに微調整する前と同じままで、出力確率も同じです。

その理由は何でしょうか?コードの微調整で何か間違いを犯したのでしょうか?


正解


新しいモデル (model_finetune オブジェクト) を使用してオプティマイザーを再初期化する必要があります。現在、コードでわかるように、古いモデルの重みで初期化されたオプティマイザー、model.parameters() がまだ使用されているようです。

以上が小さなデータセットで MLP モデルを微調整しても、事前トレーニングされた重みと同じテスト精度が維持されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。