Как я могу изменить устройство, используемое в

Я попытался сменить устройство, используемое в программе на основе anano.

from theano import config
config.device = "gpu1"

Однако я получил ошибку

Exception: Can't change the value of this config parameter after initialization!

Интересно, какой лучший способ изменения gpu для gpu1 в коде?

Спасибо

Ответы

Ответ 1

Невозможно изменить это значение в коде, запущенном в том же процессе. Лучшее, что вы можете сделать, это иметь "родительский" процесс, который изменяет, например, переменную среды THEANO_FLAGS и порождает детей. Однако метод нереста определит, в какой среде дети работают.

Обратите также внимание на то, что нет способа сделать это таким образом, чтобы поддерживать память процесса посредством изменения. Вы не можете запускать на CPU, выполнять некоторую работу со значениями, хранящимися в памяти, а затем переходить на работу на графическом процессоре и продолжать работать, используя значения, все еще находящиеся в памяти, с более раннего (центрального) этапа работы. Процесс должен быть отключен и перезапущен для изменения используемого устройства.

Как только вы import theano устройство зафиксировано и не может быть изменено в процессе, который сделал импорт.

Ответ 2

Другая возможность, которая работала для меня, заключалась в установке переменной среды в процессе перед импортом theano:

import os    
os.environ['THEANO_FLAGS'] = "device=gpu1"    
import theano