Chainer-使用GPU进行预测

时间:2018-07-30 09:39:05

标签: python deep-learning gpu chainer

我有一个训练有素的Chainer模型,我想用它来执行预测。默认情况下,我可以在CPU上预测图像,但是我想使用GPU,但不确定如何去做。 这是我的代码:

model = MyModel()
chainer.serializers.load_npz("snapshot", model)
image = load_image(path) # returns a numpy array

with chainer.no_brackprop_mode(), chainer.using_config("train", False):
    pred = model.__call__(image)

这在CPU上工作正常。我应该添加什么以在GPU上进行预测? 我尝试过:

  • model.to_gpu(0)
  • chainer.cuda.get_device_from_id(0).use()
  • 使用image = cupy.array(image)将图像转换为CuPy数组

使用所有这些选项,我得到一个错误:

ValueError: numpy and cupy must not be used together
type(W): <type 'cupy.core.core.ndarray'>, type(x): <type 'numpy.ndarray'>

我在这里做错了什么?如何在GPU上执行预测? 预先感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

我终于想出了一种方法来使其工作: 我没有使用cupy.array(image),而是先使用了cuda.to_gpu(image)cuda.to_cpu(image)。我不确定两者之间的区别,但是仍然可以。