TensorFlow(特に tf.keras)におけるモデルの重みの保存と読み込みは、モデルの訓練後の状態を保存し、後で再利用したい場合に非常に重要です。model.save_weights() を使用することで、モデルの構造(アーキテクチャ)とは独立して重みだけを保存・読み込みすることができます。
1. 基本構文
重みの保存
重みの読み込み
2. 保存形式の種類
save_weights() では、2種類の形式で重みを保存できます:
-
TensorFlow形式(デフォルト):拡張子
.indexと.data-00000-of-00001が生成される -
HDF5形式:拡張子
.h5をつけることで自動的にHDF5形式になる
3. 使用例
4. 注意点
-
モデル構造が同じである必要があります:
load_weights()は、元のモデルと同一のアーキテクチャでなければ正常に動作しません。 -
保存前に訓練・compileが必要:
保存するためには、モデルをコンパイルし、訓練するか、少なくともbuild()しておく必要があります。
5. 主な用途
-
トレーニング結果の保存:学習済み重みだけを保存して、推論時にモデルへ読み込み
-
転移学習:別のデータセットに対して再学習する際、ベースモデルの重みを再利用
-
分散環境での保存:複数のトレーニングジョブ間で重みを共有
まとめ
| 操作 | メソッド | 備考 |
|---|---|---|
| 重みの保存 | model.save_weights() |
.h5 拡張子でHDF5保存も可能 |
| 重みの読み込み | model.load_weights() |
モデル構造が一致している必要あり |
モデルの構造を保存したくない場合や、構造を再定義したうえで再学習・再利用したい場合に非常に有用な方法です。重みの保存と復元を適切に行うことで、モデルの再現性や継続学習の効率が大きく向上します。
生成日:2025/05/22