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