Tensorflow: устройство CUDA:0 не поддерживается службой XLA при настройке XLA_GPU_JIT номер устройства 0
Я получил это при использовании keras с бэкэндом Tensorflow:
tensorflow.python.framework.errors_impl.InvalidArgumentError: устройство CUDA:0 не поддерживается службой XLA при настройке номера устройства XLA_GPU_JIT 0
Соответствующий код:
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))
версия tenorflow: 1.14.0
2 ответа
Код председателя Го:
os.environ["CUDA_VISIBLE_DEVICES"] = "1"
решил мою проблему с отказом ядра ноутбука jupyter:
tf.keras.models.load_model(path/to/my/model)
Роковое сообщение было:
2020-01-26 11:31:58.727326: F tensorflow / stream_executor / lib / statusor.cc:34] Попытка получить значение вместо обработки ошибки Внутренний: не удалось инициализировать StreamExecutor для устройства CUDA, порядковый номер 0: Внутренний: не удалось вызвать cuDevicePrimaryCtxRetain: CUDA_ERROR_UNKNOWN: неизвестная ошибка
Версия моего TF: 2.2.0-dev20200123. В этой системе 2 графических процессора.
Это может быть связано с тем, что у вашего TF-default (т.е. 1-го) GPU не хватает памяти. Если у вас несколько графических процессоров, перенаправьте свою программу Python для работы на других графических процессорах. В TF (предположим, что используется TF-2.0-rc1) установите следующее:
# 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
Предположим, однако, что в вашей среде только один графический процессор, тогда, возможно, у вас нет другого выбора, кроме как попросить своего приятеля остановить его программу, а затем угостить его чашкой кофе.