機械学習とその他

機械学習したいマン

chainerで画像分類しようとして躓いた

TypeError: Argument 'a' has incorrect type (expected cupy.core.core.ndarray, got numpy.ndarray) 

というエラーがでて学習が出来なかった。

渡すのがcupyじゃなくてnumpyの配列になってる?って確認しても、ちゃんとcupyになっていてイマイチわからなかったが、解決したのでメモしておく。

1epochが終了するたびにモデルを保存するようにしていて、
以下のようにソースコードを書いていた。

model.to_cpu()
chainer.serializers.save_npz("model"+str(epoch+1), model)

しかし、これではmodelをcpu用に変換したままになっていたためエラーを吐いていたのだ。
model.to_cpu()を削除することでも解決できるが、とりあえず今回は以下のようにgpu用に変換することで解決した。

model.to_cpu()
chainer.serializers.save_npz("model"+str(epoch+1), model)
model.to_gpu()