Chainer - прогнозирование с использованием графического процессора

1

У меня есть подготовленная модель Chainer, которую я хочу использовать для выполнения прогнозов. Я могу предсказать изображения на процессоре по умолчанию, но я хочу использовать графический процессор, и я не уверен, как это сделать. Вот как выглядит мой код:

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)

Это отлично работает на процессоре. Что я должен добавить к этому, чтобы предсказать на GPU? Я старался:

  • model.to_gpu(0)
  • chainer.cuda.get_device_from_id(0).use()
  • конвертировать изображение в массив CuPy с 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'>

Что я здесь делаю неправильно? Как выполнять предсказания на графическом процессоре? Заранее спасибо за помощь.

Теги:
deep-learning
gpu
chainer

1 ответ

1

Я, наконец, понял способ заставить его работать: вместо использования cupy.array(image) я использовал cuda.to_gpu(image) а затем cuda.to_cpu(image). Я не уверен в различии между ними, но все же, он работает.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню