当前状况
1)在深度学习模型结构中使用了CuDNNLSTM层。
2)使用时间序列数据进行训练。每批的时间步长为1,000。 (我认为它很长。)
3)学习是在Google云平台上使用Tesla T4完成的。
4)加载模型在本地PC上,并通过GPU GTX 1060(6gb)]使用它
5)通过本地PC上的模型进行预测,每次不会发生错误,但有时会发生错误。
我在Google上搜索了错误关键字,它似乎是GPU内存问题。
我认为这与GPU内存问题有关的原因
1)通过动态分配内存设置解决了此错误消息的大多数解决方案。
config = tf.ConfigProto()
config.gpu_options.allow_growth = True)
但是它对我不起作用。
2)如果将CuDNNLSTM的权重更改为LSTM模型,则通过模型进行预测的效果很好,不会出现错误。但是,它非常慢。预测速度(model.predict)大约相差10倍。
问题
我想知道这是否是GPU内存问题,即使安装了新的GPU,也可能无法解决。实际上,模型的容量并不大(〜100MB),并且在检查GPU使用情况时,GPU仅占用了1 GB的内存。
我很好奇我将能够确切知道是什么原因引起了问题。
感谢您阅读长文本。
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)在深度学习模型结构中使用了CuDNNLSTM层。 2)用时间序列数据进行训练。每批的时间步长为1,000。 (我认为这很长。)3)学习...