serializers.save_npz, load_npz の使い方

Chainerにおけるモデルの保存と読み込みは、chainer.serializers モジュールの save_npz および load_npz 関数を用いることで簡潔に行えます。これらの関数は、学習済みモデルのパラメータをファイルに保存したり、保存されたファイルからパラメータを復元したりするために使用されます。


1. serializers.save_npz の使い方(モデルの保存)

概要

モデル(chainer.Link または chainer.Chain)のすべてのパラメータを .npz 形式のファイルに保存します。

構文

python
chainer.serializers.save_npz(filename, obj)
  • filename:保存先のファイル名(例:'mymodel.npz')。

  • obj:保存したいオブジェクト(通常はモデルのインスタンス)。

python
import chainer import chainer.links as L import chainer.serializers # シンプルなモデル定義 model = L.Linear(10, 1) # 入力10次元、出力1次元の全結合層 # モデルのパラメータを保存 chainer.serializers.save_npz('linear_model.npz', model)

2. serializers.load_npz の使い方(モデルの読み込み)

概要

保存された .npz ファイルから、対応するモデルのパラメータを読み込んで復元します。

構文

python
chainer.serializers.load_npz(filename, obj)
  • filename:読み込むファイル名(例:'mymodel.npz')。

  • obj:パラメータを読み込む先のモデルオブジェクト。

python
import chainer.links as L import chainer.serializers # モデルのインスタンスを同様に定義 model = L.Linear(10, 1) # 保存されたパラメータを読み込む chainer.serializers.load_npz('linear_model.npz', model)

注意点

  • モデル構造が保存時と読み込み時で一致していなければなりません。

  • .npz 形式はNumPyの圧縮保存形式であり、Chainer独自の形式にモデルパラメータが保存されます。

  • save_npz/load_npzは、学習状態(optimizerの状態など)を保存・復元する場合にも使用できます(例:optimizerの状態を保存する)。

python
# Optimizerの保存と復元の例 optimizer = chainer.optimizers.Adam() optimizer.setup(model) # 保存 chainer.serializers.save_npz('optimizer.npz', optimizer) # 復元 chainer.serializers.load_npz('optimizer.npz', optimizer)

まとめ

  • save_npz:モデルやOptimizerの状態を.npz形式で保存。

  • load_npz:保存されたパラメータをオブジェクトに復元。

  • モデル定義は保存時と同一である必要がある。

これらを活用することで、学習済みモデルの再利用やチェックポイント機能の実装が可能になります。

生成日:2025/05/23