2 votes

Comment forcer tensorflow à oublier le GPU, après qu'il ait été trouvé ?

J'ai un code basé sur tensorflow que j'exécute sur plusieurs ordinateurs, certains avec des CPU et d'autres avec des CPU et des GPU.

Si un GPU est disponible sur la machine, je voudrais donner à l'utilisateur la possibilité d'utiliser le CPU à la place.

Le code de cette réponse fonctionne bien :

import os
import tensorflow as tf

os.environ['CUDA_VISIBLE_DEVICES'] = '-1'

if tf.test.gpu_device_name():
    print('GPU found')
else:
    print("No GPU found")

# No GPU found

Cependant, je voudrais vérifier si un GPU est disponible. premièrement puis le désactiver.

J'ai essayé :

import tensorflow as tf

if tf.test.gpu_device_name():
    import os
    os.environ['CUDA_VISIBLE_DEVICES'] = '-1'

if tf.test.gpu_device_name():
    print('GPU found')

# GPU found

Mais cela ne fonctionne pas. Une fois que j'ai utilisé tf.test.gpu_device_name() il se souvient toujours que le système possède un GPU.

J'ai aussi essayé del tf , importlib.reload(tf) en vain.
La seule chose qui fonctionne est de quitter l'interpréteur et d'exécuter le premier script ci-dessus.

Comment puis-je faire en sorte que le code "oublie" le GPU une fois qu'il a été trouvé ?

2voto

Sraw Points 7876

Je ne comprends pas pourquoi vous devez laisser le TensorFlow oublier. Vous avez un GPU, cela ne veut pas dire que vous devez utiliser le GPU.

Vous pouvez utiliser tf.device pour spécifier le périphérique sous-jacent.

Par exemple :

# Place tensors on the CPU
with tf.device('/CPU:0'):
  a = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
  b = tf.constant([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]])

c = tf.matmul(a, b)
print(c)

Ainsi, même si vous disposez d'un GPU, le programme utilisera toujours le CPU.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X