Chainer - 使用 GPU 进行预测
Chainer - predict using GPU
我有一个训练有素的 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 上执行预测?
在此先感谢您的帮助。
我终于想出了一个让它工作的方法:
我没有使用 cupy.array(image)
,而是使用了 cuda.to_gpu(image)
,然后是 cuda.to_cpu(image)
。我不确定它们之间的区别,但它仍然有效。
我有一个训练有素的 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 上执行预测? 在此先感谢您的帮助。
我终于想出了一个让它工作的方法:
我没有使用 cupy.array(image)
,而是使用了 cuda.to_gpu(image)
,然后是 cuda.to_cpu(image)
。我不确定它们之间的区别,但它仍然有效。