代码之家  ›  专栏  ›  技术社区  ›  MeanStreet

基于GPU的链式预测

  •  1
  • MeanStreet  · 技术社区  · 6 年前

    我有一个训练有素的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)

    有了所有这些选项,我会得到一个错误:

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

    我在这里做错什么了?如何在GPU上执行预测? 提前谢谢你的帮助。

    1 回复  |  直到 6 年前
        1
  •  2
  •   MeanStreet    6 年前

    我终于想出了一个办法: 而不是使用 cupy.array(image) ,我用过 cuda.to_gpu(image) 然后 cuda.to_cpu(image) . 我不确定它们之间的区别,但仍然有效。