俺とプログラミング

某IT企業でエンジニアをしてます。このブログではプログラミングに関わることを幅広く発信します。

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)
Copyright © 2016 ttlg All Rights Reserved.