web-dev-qa-db-fra.com

Empêcher TensorFlow d'accéder au GPU?

Existe-t-il un moyen d'exécuter TensorFlow uniquement sur le CPU. Toute la mémoire de ma machine est absorbée par un processus distinct exécutant TensorFlow. J'ai essayé de mettre le per_process_memory_fraction à 0, sans succès.

17
jasekp

Jetez un œil à cette question ou à cette réponse .

Pour résumer, vous pouvez ajouter ce morceau de code:

import os
os.environ["CUDA_VISIBLE_DEVICES"]="-1"    
import tensorflow as tf

EDIT: Citant cela commentaire , jouer avec le CUDA_VISIBLE_DEVICES La variable d'environnement est l'une des (sinon la) voie à suivre chaque fois que vous avez installé GPU-tensorflow et que vous ne voulez pas utiliser du tout votre carte GPU.

Vous voulez soit exporter CUDA_VISIBLE_DEVICES =, soit alternativement un virtualenv avec TensorFlow non-GPU. Voir aussi: # 2175 (commentaire)

35
pfm

Vous ne pouvez utiliser que des processeurs en ouvrant une session avec une limite GPU de 0:

sess = tf.Session(config=tf.ConfigProto(device_count={'GPU': 0}))

Voir https://www.tensorflow.org/api_docs/python/tf/ConfigProto pour plus de détails.

Une preuve que cela fonctionne pour @Nicolas:

En Python, écrivez:

import tensorflow as tf
sess_cpu = tf.Session(config=tf.ConfigProto(device_count={'GPU': 0}))

Puis dans un terminal:

nvidia-smi

Vous verrez quelque chose comme:

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|    0     24869    C   /.../python                 99MiB                     |
+-----------------------------------------------------------------------------+

Répétez ensuite le processus: en Python, écrivez:

import tensorflow as tf
sess_gpu = tf.Session()

Puis dans un terminal:

nvidia-smi

Vous verrez quelque chose comme:

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|    0     25900    C   /.../python                                   5775MiB |
+-----------------------------------------------------------------------------+
8
MZHm