CupyからNumpyへの変換(gpu to cpu)
chainerでcupyのndarrayから、numpyのndarrayへの変換(つまりGPUからCPUへの変換)をどうやるか少し手こずったので、メモしておきます。
import numpy as np ndarray_cpu = np.array(ndarray_gpu)
でいけるかとおもったら、以下のエラーがでました。また、matplotlibでplotする時も同様のエラーが発生します。
ValueError: object __array__ method not producing an array
解決方法はcupyをnumpyへ変換することです。
GPUからCPUへの変換はchainerのto_cpuメソッドが使えます。
import chainer.cuda
ndarray_cpu = chainer.cuda.to_cpu(ndarray_gpu)