[解決済み】PyTorchで学習したモデルを保存する最適な方法とは?
2022-02-21 10:42:03
質問
PyTorchで学習したモデルを保存するための代替方法を探していました。今のところ、2つの代替方法を見つけました。
- torch.save() でモデルを保存し torch.load() を使ってモデルをロードします。
- model.state_dict() を使って学習済みモデルを保存し model.load_state_dict() で保存されたモデルをロードします。
私は、このようなことに遭遇しました。 ディスカッション アプローチ2がアプローチ1より推奨されているところ。
質問ですが、なぜ2番目のアプローチが好まれるのでしょうか?それは トーチ.nn モジュールにはこの2つの機能があり、それを使うことが推奨されているのでしょうか?
どのように解決するのですか?
以下のものが見つかりました。 このページ のgithub repoに掲載されているので、その内容をここに貼り付けておきます。
モデルを保存するための推奨アプローチ
モデルのシリアライズとリストアには、主に2つのアプローチがあります。
1つ目(推奨)は、モデルのパラメータのみを保存し、ロードする方法です。
torch.save(the_model.state_dict(), PATH)
じゃあ、後で。
the_model = TheModelClass(*args, **kwargs)
the_model.load_state_dict(torch.load(PATH))
2つ目は、モデル全体の保存と読み込みです。
torch.save(the_model, PATH)
じゃあ、後で。
the_model = torch.load(PATH)
しかし、この場合、シリアライズされたデータは、特定のクラス と正確なディレクトリ構造を使用するため、様々な方法で壊れる可能性があります。 を他のプロジェクトで使用したり、深刻なリファクタリングを行った後に使用します。
関連
-
Python カメの描画コマンドとその例
-
Pythonの画像ファイル処理用ライブラリ「Pillow」(グラフィックの詳細)
-
[解決済み】TypeErrorの修正方法。Unicodeオブジェクトは、ハッシュ化する前にエンコードする必要がある?
-
[解決済み】Pythonでgoogle APIのJSONコードを読み込むとエラーになる件
-
[解決済み] AndroidでPythonを実行する方法はありますか?
-
[解決済み] 複数行の長い文字列を作成するためのPythonicな方法
-
[解決済み] Pythonで型をチェックする標準的な方法は何ですか?
-
[解決済み] 最近のPythonでカスタム例外を宣言する適切な方法?
-
[解決済み] Matplotlibでプロットを表示するのではなく、画像ファイルに保存する。
-
[解決済み] Python 3で文字列をバイトに変換する最良の方法?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Pythonの非常に便利な2つのデコレーターを解説
-
Python 人工知能 人間学習 描画 機械学習モデル作成
-
Python カメの描画コマンドとその例
-
Pythonによるjieba分割ライブラリ
-
python implement mysql add delete check change サンプルコード
-
PyQt5はユーザーログインGUIインターフェースとログイン後のジャンプを実装しています。
-
Python LeNetネットワークの説明とpytorchでの実装
-
[解決済み] _tkinter.TclError: 表示名がなく、$DISPLAY環境変数もない。
-
[解決済み】numpy: true_divide で無効な値に遭遇
-
[解決済み】Flask ImportError: Flask という名前のモジュールがない