読者です 読者をやめる 読者になる 読者になる

chainer いろは

箇条書きで

学習済みモデルの保存と利用は?

せっかく学習させたので、学習済みのデータを使いたい。

どうやる?

chainer.serialisersを使う。

注意点は、ダンプしたのと同じ環境じゃないと動かない。

model の種類、GPUの使用/不使用 など、らしい。

Model 書き出し
 ...
from chainer import serializers

 ...

# npz形式で書き出し
serializers.save_npz("model.002.npz", model)
# hdf5形式で書き出し
# serializers.save_hdf5('modelhdf5', model)
Model 読み込み
 ...
from chainer import serializers
 ...


model   = Model()
# npz形式で読み込み
serializers.load_npz("model.002.npz", model)
# hdf5形式で読み込み
# serializers.load_hdf5("modelhdf5", model)

CSLAIER で学習させると、一式をzipでダウンロードできます。

GPUでの計算にするには?

gpu の初期設定と、 nummpy を chainer.cuda.cupy に変更する。

gpu_device = 0
chainer.cuda.get_device(gpu_device).use()
model.to_gpu(gpu_device)
xp = chainer.cuda.cupy

# 入力ベクトル
x   = Variable(xp.array( [[0,0],[0,1],[1,0],[1,1]], dtype=xp.float32))

# 正解ベクトル
t   = Variable(xp.array( [[0],[1],[1],[1]], dtype=xp.float32))  # OR 演算
t   = Variable(xp.array( [[0],[0],[0],[1]], dtype=xp.float32))  # AND 演算
t   = Variable(xp.array( [[1],[1],[1],[0]], dtype=xp.float32))  # NAND 演算
t   = Variable(xp.array( [[0],[1],[1],[0]], dtype=xp.float32))  # XOR 演算