Tensorflow establecer DISPOSITIVOS VISIBLES CUDA dentro de jupyter
Tengo dos GPU y me gustaría ejecutar dos redes diferentes a través de ipynb simultáneamente, sin embargo, el primer portátil siempre asigna ambas GPU.
Usando CUDA_VISIBLE_DEVICES, puedo ocultar dispositivos para archivos python, sin embargo, no estoy seguro de cómo hacerlo dentro de un cuaderno.
¿Hay de todos modos para ocultar diferentes GPU en los portátiles que se ejecutan en el mismo servidor?
2 answers
Puede establecer variables de entorno en el cuaderno usando os.environ
. Haga lo siguiente antes de inicializar TensorFlow para limitar TensorFlow a la primera GPU.
import os
os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID" # see issue #152
os.environ["CUDA_VISIBLE_DEVICES"]="0"
Puede verificar que tiene los dispositivos correctos visibles para TF
from tensorflow.python.client import device_lib
print device_lib.list_local_devices()
Tiendo a usarlo desde el módulo de utilidad como notebook_util
import notebook_util
notebook_util.pick_gpu_lowest_memory()
import tensorflow as tf
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-09 02:10:16
Puedes hacerlo más rápido sin importar nada solo usando magics :
%env CUDA_DEVICE_ORDER=PCI_BUS_ID
%env CUDA_VISIBLE_DEVICES=0
Observe que todas las variables env son cadenas, por lo que no es necesario usar "
. Puede verificar que env-variable está configurado ejecutando: %env <name_of_var>
. O comprobar todos ellos con %env
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-02 07:44:32