Вопрос касательно сообщений об ошибках, возникающих при использовании CudnnLSTM Layer в keras - PullRequest
0 голосов
/ 13 марта 2020

Текущая ситуация

1) Слой CuDNNLSTM используется в структуре модели глубокого обучения.

2) Он обучен с данными временных рядов. шаг по времени для каждой партии составляет 1000. (Я думаю, что это довольно долго.)

3) Обучение было проведено с Tesla T4 на облачной платформе Google.

4) Загрузите модель на локальный P C и использовать его с помощью графического процессора GTX 1060 (6 ГБ)

5) Прогнозирование по модели на локальном компьютере p c, ошибка не возникает каждый раз, но иногда возникает ошибка.

I Я искал в Google ключевое слово error, и это, похоже, проблема с памятью GPU.

Причина, по которой я думаю, что это проблема с памятью GPU

1) Большинство решений чтобы это сообщение об ошибке было решено путем динамического выделения памяти.

config = tf.ConfigProto ()

config.gpu_options.allow_growth = True)

Но это не так работать для меня.

2) если вес CuDNNLSTM изменяется на модель LSTM, прогнозирование по модели работает хорошо без ошибок. Тем не менее, это очень медленно. Скорость прогнозирования (model.predict), кажется, примерно в 10 раз отличается.

Вопрос

Интересно, если это проблема с памятью графического процессора, и она не может быть в состоянии необходимо решить, даже если установлен новый графический процессор. На самом деле объем модели не такой большой (~ 100 МБ), и при проверке использования графического процессора он занимал только 1 ГБ памяти.

Мне интересно, какие части я собираюсь использовать чтобы точно знать, что вызвало проблему.

Спасибо, что прочитали длинный текст.

2020-03-11 14:16:53.437923: E tensorflow/stream_executor/cuda/cuda_dnn.cc:82] CUDNN_STATUS_INTERNAL_ERROR

in tensorflow/stream_executor/cuda/cuda_dnn.cc(1477): 'cudnnRNNForwardTraining( cudnn.handle(), rnn_desc.handle(), model_dims.seq_length, input_desc.handles(), input_data.opaque(), input_h_desc.handle(), input_h_data.opaque(), input_c_desc.handle(), input_c_data.opaque(), rnn_desc.params_handle(), params.opaque(), output_desc.handles(), output_data->opaque(), output_h_desc.handle(), output_h_data->opaque(), output_c_desc.handle(), output_c_data->opaque(), workspace.opaque(), workspace.size(), reserve_space.opaque(), reserve_space.size())'

2020-03-11 14:16:53.438538: W tensorflow/core/framework/op_kernel.cc:1401] OP_REQUIRES failed at cudnn_rnn_ops.cc:1224 : Internal: Failed to call ThenRnnForward with model config: [rnn_mode, rnn_input_mode, rnn_direction_mode]: 2, 0, 0 , [num_layers, input_size, num_units, dir_count, seq_length, batch_size]: [1, 38, 16, 1, 1000, 1]

Traceback (most recent call last):

File "D:\Anaconda3_64\envs\gpu\lib\site-packages\keras\engine\training.py", line 1462, in predict

callbacks=callbacks)

File "D:\Anaconda3_64\envs\gpu\lib\site-packages\keras\engine\training_arrays.py", line 324, in predict_loop

batch_outs = f(ins_batch)

File "D:\Anaconda3_64\envs\gpu\lib\site-packages\tensorflow\python\keras\backend.py", line 3076, in __call__

run_metadata=self.run_metadata)

File "D:\Anaconda3_64\envs\gpu\lib\site-packages\tensorflow\python\client\session.py", line 1439, in __call__

run_metadata_ptr)

File "D:\Anaconda3_64\envs\gpu\lib\site-packages\tensorflow\python\framework\errors_impl.py", line 528, in __exit__

c_api.TF_GetCode(self.status.status))

tensorflow.python.framework.errors_impl.InternalError: Failed to call ThenRnnForward with model config: [rnn_mode, rnn_input_mode, rnn_direction_mode]: 2, 0, 0 , [num_layers, input_size, num_units, dir_count, seq_length, batch_size]: [1, 38, 16, 1, 1000, 1]

[[{{node bidirectional_2/CudnnRNN}}]]

[[{{node dense_1/BiasAdd}}]]

1 Ответ

1 голос
/ 16 марта 2020
  1. Попробуйте уменьшить размер пакета.
  2. Кажется, ошибка windows, если вы работаете на windows, попробуйте Ubuntu и посмотрите, сохраняется ли ошибка. https://github.com/tensorflow/tensorflow/issues/33924
  3. Попробуйте запустить на ЦП (tenorflow-CPU), ошибка должна исчезнуть go.
...