2017-09-24 14 views
0

Lorsque je tente d'ouvrir une session de tensorflow, je reçois l'erreur suivante:Impossible d'ouvrir une session de tensorflow

2017-09-24 10:49:20.526121: I tensorflow/core/common_runtime/gpu/gpu_device.cc:955] Found device 0 with properties: 
name: GeForce GTX 970 
major: 5 minor: 2 memoryClockRate (GHz) 1.342 
pciBusID 0000:03:00.0 
Total memory: 3.94GiB 
Free memory: 3.87GiB 
2017-09-24 10:49:20.599629: W tensorflow/stream_executor/cuda/cuda_driver.cc:523] A non-primary context 0x3dcf7e0 exists before initializing the StreamExecutor. We haven't verified StreamExecutor works with that. 
2017-09-24 10:49:20.599947: E tensorflow/core/common_runtime/direct_session.cc:171] Internal: failed initializing StreamExecutor for CUDA device ordinal 1: Internal: failed call to cuDevicePrimaryCtxRetain: CUDA_ERROR_INVALID_DEVICE 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/home/user/python-envs/tensorflow/local/lib/python2.7/site-packages/tensorflow/python/client/session.py", line 1486, in __init__ 
    super(Session, self).__init__(target, graph, config=config) 
    File "/home/user/python-envs/tensorflow/local/lib/python2.7/site-packages/tensorflow/python/client/session.py", line 621, in __init__ 
    self._session = tf_session.TF_NewDeprecatedSession(opts, status) 
    File "/usr/lib/python2.7/contextlib.py", line 24, in __exit__ 
    self.gen.next() 
    File "/home/user/python-envs/tensorflow/local/lib/python2.7/site-packages/tensorflow/python/framework/errors_impl.py", line 466, in raise_exception_on_not_ok_status 
    pywrap_tensorflow.TF_GetCode(status)) 
tensorflow.python.framework.errors_impl.InternalError: Failed to create session. 

J'ai deux GPUS dans mon système. L'un pour l'affichage et un autre pour Compute:

GPU0 (display) : Nvidia NVS 310 
GPU1 (compute) : Nvidia Geforce GTX 970 
Graphics Driver: 384.66 
CUDA version : 8 
cuDNN version : v6 for CUDA 8 (April 27, 2017) 
Operating Sys. : Ubuntu 16.04 

Quelqu'un d'autre a ce problème? Comment puis-je déboguer/réparer ceci?

NOTE: J'ai essayé d'ouvrir un problème sur Github. Mais avant que j'aie fini, on m'a demandé de rechercher les problèmes soulevés plus tôt sur SO ou de demander là.

Merci!

Répondre

0

Il semble que tensorflow essaie de saisir tous les GPU disponibles pour le calcul comme indiqué dans le problème de Github ci-dessous. Définir la variable d'environnement CUDA_VISIBLE_DEVICES à l'appareil que je veux utiliser pour le calcul a fait l'affaire.

question connexe sur Github Peut-être comprend: Segmentation fault when GPUs are already used

On peut vérifier l'ID du périphérique sur Ubuntu en exécutant l'utilitaire nvidia-smi.