J'ai obtenu ceci lors de l'utilisation de keras avec le backend Tensorflow:
tensorflow.python.framework.errors_impl.InvalidArgumentError: périphérique CUDA: 0 non pris en charge par le service XLA lors de la configuration du numéro de périphérique XLA_GPU_JIT 0
Code pertinent:
tfconfig = tf.ConfigProto()
tfconfig.graph_options.optimizer_options.global_jit_level = tf.OptimizerOptions.ON_1
tfconfig.gpu_options.allow_growth = True
K.tensorflow_backend.set_session(tf.Session(config=tfconfig))
version tensorflow: 1.14.0
Code du président Guo:
os.environ["CUDA_VISIBLE_DEVICES"] = "1"
résolu mon problème de plantage du noyau de portable jupyter:
tf.keras.models.load_model(path/to/my/model)
Le message fatal était:
2020-01-26 11: 31: 58.727326: F tensorflow/stream_executor/lib/statusor.cc: 34] Tentative de récupération de la valeur au lieu de gérer l'erreur Interne: échec de l'initialisation de StreamExecutor pour le périphérique CUDA ordinale 0: Interne: échec de l'appel à cuDevicePrimaryCtxRetain: CUDA_ERROR_UNKNOWN: erreur inconnue
La version de mon TF est: 2.2.0-dev20200123. Il y a 2 GPU sur ce système.
Cela peut être dû au fait que votre GPU par défaut TF (c'est-à-dire le 1er) manque de mémoire. Si vous avez plusieurs GPU, détournez votre programme Python pour qu'il s'exécute sur d'autres GPU. Dans TF (supposons utiliser TF-2.0-rc1), définissez les paramètres suivants:
# Specify which GPU(s) to use
os.environ["CUDA_VISIBLE_DEVICES"] = "1" # Or 2, 3, etc. other than 0
# On CPU/GPU placement
config = tf.compat.v1.ConfigProto(allow_soft_placement=True, log_device_placement=True)
config.gpu_options.allow_growth = True
tf.compat.v1.Session(config=config)
# Note that ConfigProto disappeared in TF-2.0
Supposons, cependant, que votre environnement ne dispose que d'un seul GPU, alors peut-être n'avez-vous pas d'autre choix que de demander à votre copain d'arrêter son programme, puis de lui offrir une tasse de café.