Tensorflow 2.0 не может использовать графический процессор, что-то не так в cuDNN?: Не удалось получить алгоритм свертки.Вероятно, это связано с тем, что cuDNN не удалось инициализировать - PullRequest
0 голосов
/ 28 сентября 2019

Я пытался предсказать с моей моделью CNN tf2.0 / tf.keras на графическом процессоре, но получил эти сообщения об ошибках.Может ли кто-нибудь помочь мне это исправить?

** окружение:

python 3.6.8

tenorflow-gpu 2.0.0-rc0

nvidia 418.x

CUDA 10.0

cuDNN 7.6 + **

=================================================================

Журналы:

2019-09-28 13: 10: 59.833892: I tenorflow / stream_executor / platform / default / dso_loader.cc: 44] Успешно открытая динамическая библиотека libcublas.so.10.0 2019-09-28 13: 11: 00.228025: I tenorflow / stream_executor / platform / default / dso_loader.cc: 44] Успешно открытая динамическая библиотека libcudnn.so.7 2019-09-28 13: 11: 00.957534: Eensorflow / stream_executor / cuda / cuda_dnn.cc: 329] Не удалось создать дескриптор cudnn: CUDNN_STATUS_INTERNAL_ERROR 2019-09-28 13: 11: 00.963310: E tenorflowflow / stream_executor / cuda / cuda_dnn.cc: 329] Невозможно создать дескриптор cudnn: CUDNN_STATUS_-28ORN 13:11 201-0900.963416: W tenorflow / core / common_runtime / base_collective_executor.cc: 216] BaseCollectiveExecutor :: StartAbort Unknown: Не удалось получить алгоритм свертки.Вероятно, это связано с тем, что cuDNN не удалось инициализировать, поэтому попробуйте посмотреть, не было ли напечатано сообщение с предупреждением выше.[[{{node mobilenetv2_1.00_192 / Conv1 / Conv2D}}]] mobilenetv2_1.00_192 / block_15_expand_BN / cond / then / _630 / Const: (Const): / job: localhost / replica: 0 / task: 0 / device: GPU: 0 =====> Доступный графический процессор: True =====> 4 физических графических процессора, 1 логический графический процессор

mobilenetv2_1.00_192 / block_15_expand_BN / cond / then / _630 / Const_1: (Const): /задание: localhost / реплика: 0 / задача: 0 / устройство: GPU: 0 mobilenetv2_1.00_192 / block_15_depthwise_BN / cond / then / _644 / Const: (Const): / job: localhost / реплика: 0 / task: 0 / device:GPU: 0 mobilenetv2_1.00_192 / block_15_depthwise_BN / cond / then / _644 / Const_1: (Const): / job: localhost / replica: 0 / task: 0 / устройство: GPU: 0 mobilenetv2_1.00_192 / block_15_project_BN / cond / then / _658/ Const: (Const): / job: localhost / replica: 0 / task: 0 / device: GPU: 0 mobilenetv2_1.00_192 / block_15_project_BN / cond / then / _658 / Const_1: (Const): / job: localhost / replica:0 / задача: 0 / устройство: GPU: 0 mobilenetv2_1.00_192 / block_16_expand_BN / cond / then / _672 / Const: (Const): / job: localhost / replica: 0 / task: 0 / устройство: GPU: 0 mobilenetv2_1.00_192/ block_16_expand_BN / конд / то / _672 / Const_1: (Const): / job: localhost / replica: 0 / task: 0 / device: GPU: 0 mobilenetv2_1.00_192 / block_16_depthwise_BN / cond / then / _686 / Const: (Const): / job: localhost / replica: 0 / task: 0 / device: GPU: 0 mobilenetv2_1.00_192 / block_16_depthwise_BN / cond / then / _686 / Const_1: (Const): / job: localhost / replica: 0 / task: 0 / device: GPU: 0 mobilenetv2_1.00_192 / block_16_project_BN / cond / then / _700 / Const: (Const): / job: localhost / replica: 0 / task: 0 / device: GPU: 0 mobilenetv2_1.00_192 / block_16_project_BN / cond / then / _700 / Const_1: (Const): / job: localhost / реплика: 0 / task: 0 / device: GPU: 0 mobilenetv2_1.00_192 / Conv_1_bn / cond / then / _714 / Const: (Const): / job: localhost / реплика: 0 / task: 0/ устройство: GPU: 0 mobilenetv2_1.00_192 / Conv_1_bn / cond / then / _714 / Const_1: (Const): / job: localhost / replica: 0 / task: 0 / device: GPU: 0 Traceback (последний последний вызов):Файл «NSFW_Server.py», строка 162, в файле model.predict (initial_tensor) «/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/keras/engine/training.py», строка 915,в прогнозировании use_multiprocessing = use_мультипроцессинг) Файл "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/keras/engine/training_arrays.py", строка 722, в файле предикатов обратных вызовов = обратных вызовов) Файл "/ usr / local / lib /python3.6 / dist-packages / tenorflow_core / python / keras / engine / training_arrays.py ", строка 393, в файле model_iteration batch_outs = f (ins_batch)" /usr/local/lib/python3.6/dist-packages/tensorflow_core/python/keras/backend.py ", строка 3625, в вызов output = self._graph_fn (* convert_inputs) Файл" /usr/local/lib/python3.6/dist-packages/tensorflow_core/python/eager/function.py ", строка 1081, в вызов , возврат self._call_impl (args, kwargs)Файл "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/eager/function.py", строка 1121, в _call_impl возвращает файл self._call_flat (args, self.captured_inputs, cancellation_manager) Файл "/ usr/local/lib/python3.6/dist-packages/tensorflow_core/python/eager/function.py ", строка 1224, в _call_flat ctx, args, cancellation_manager = cancellation_manager) Файл" /usr/local/lib/python3.6/dist-packages / tenorflow_core / python / eager / function.py ", строка 511, в вызове ctx = ctx) Файл" /usr/local/lib/python3.6/dist-packages/tensorflow_core/python/eager/execute.py", строка 67, в файле quick_execute six.raise_from (core._status_to_exception (e.code, message), None))", строка 3, в lift_from tenderorflow.python.framework.errors_impl.UnknownError: Не удалось получить алгоритм свертки.Вероятно, это связано с тем, что cuDNN не удалось инициализировать, поэтому попробуйте посмотреть, не было ли напечатано сообщение с предупреждением выше.[[node mobilenetv2_1.00_192 / Conv1 / Conv2D (определено в /usr/local/lib/python3.6/dist-packages/tensorflow_core/python/framework/ops.py:1751)]] [Op: __ inference_keras_scratch_graph_10727]

Стек вызовов функций: keras_scratch_graph

=================================================================

СВЯЗАННЫЙ КОД:

если имя == " main ":

print("=====>GPU Available: ", tf.test.is_gpu_available())
tf.debugging.set_log_device_placement(True)

gpus = tf.config.experimental.list_physical_devices('GPU')
if gpus:
    try:
        # Currently, memory growth needs to be the same across GPUs

        tf.config.experimental.set_visible_devices(gpus[0], 'GPU')
        tf.config.experimental.set_memory_growth(gpus[0], True)
        logical_gpus = tf.config.experimental.list_logical_devices('GPU')
        print("=====>", len(gpus), "Physical GPUs,", len(logical_gpus), "Logical GPUs")
    except RuntimeError as e:
        # Memory growth must be set before GPUs have been initialized
        print(e)

paras_path = "./paras/{}".format(int(2011))
model = tf.keras.experimental.load_from_saved_model(paras_path)
initial_tensor = np.zeros((1, INPUT_SHAPE, INPUT_SHAPE, 3))
model.predict(initial_tensor)

==========================================================

Пожалуйста помогите, это беспокоит меня пару дней...

1 Ответ

0 голосов
/ 28 сентября 2019

Вы должны убедиться, что у вас есть правильная версия CUDA + CUDNN + TensorFlow (также убедитесь, что у вас все установлено.

Ниже представлены два примера работающих конфигураций

Например.Cuda 10 + CuDNN 7.6.3 + / TensorFlow 1.13 / 1.14 / TensorFlow 2.0.

Eg2 Cuda 9 + CuDNN 7.0.5 + TensorFlow 1.10 работает

Обычно эта ошибка появляется при наличии несовместимогоустановлена ​​версия TensorFlow / CuDNN. В моем случае это появилось, когда я попытался использовать более старый TensorFlow с более новой версией CuDNN.

...