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é ?