【发布时间】:2020-06-27 15:54:24
【问题描述】:
当我运行我的 tensorflow keras 模型时,它有时会在一个纪元后停止并抛出以下错误:
tensorflow/stream_executor/dnn.cc:613] CUDNN_STATUS_EXECUTION_FAILED
in tensorflow/stream_executor/cuda/cuda_dnn.cc(1867): 'cudnnRNNForwardTraining( cudnn.handle(), rnn_desc.handle(), model_dims.max_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-06-27 17:19:45.741256: F tensorflow/stream_executor/cuda/cuda_dnn.cc:189] Check failed: status == CUDNN_STATUS_SUCCESS (7 vs. 0)Failed to set cuDNN stream.
我使用的是 tensorflow 的 GPU 版本,直到大约 3 天前它开始给我这个错误时,它一直没有问题。我的模型中还有以下回调,以便它在本地保存检查点和时期。请注意,我使用的是 Autokeras,因此节点具有 ak。库前缀。但是它的工作原理和 keras 一样,只是在运行 .fit 函数时自动尝试找到最佳超参数集。
input_node = ak.Input()
#output_node1 = ak.Normalization()(input_node)
output_node1 = ak.RNNBlock(return_sequences=True,
layer_type='lstm')(input_node)
output_node2 = ak.RNNBlock(return_sequences=True,
layer_type='lstm')(output_node1)
output_node3 = ak.RNNBlock(return_sequences=True,
layer_type='lstm')(output_node2)
output_node4 = ak.RNNBlock(layer_type='lstm')(output_node3)
output_node5 = ak.DenseBlock()(output_node4)
output_node = ak.Merge()(
[output_node1, output_node2, output_node3, output_node4, output_node5])
output_nodefinal = ak.ClassificationHead()(output_node)
my_callbacks = [tf.keras.callbacks.EarlyStopping(patience=15, restore_best_weights=True, monitor="val_accuracy", mode="auto"),
tf.keras.callbacks.ModelCheckpoint(filepath="D:\AutoKerasProject\TimeseriesCallbackModel\TimeseriesCallbackModel", save_weights_only=True, monitor='val_accuracy', mode='auto', save_best_only=True)]
classifier = ak.AutoModel(
inputs=input_node, outputs=output_nodefinal, max_trials=500, directory="D:\AutoKerasProject\TimeseriesModel", overwrite=True)
我的电脑和软件规格如下
PC Specs:
Windows 8.1
GTX 1060 6GB
Intel i7-4770
Software Specs:
Nvidia Geforce Experience Driver 451.81
CuDNN 7.6.5 (windows 7 version)
Cuda 10.1.243
Conda Python 3.6.10
Tensorflow 2.2.0
【问题讨论】:
-
您能否提供更多详细信息?尤其是您的 TensorFlow 版本是什么,您运行的是哪个操作系统,您的 GPU 详细信息以及您正在运行的理想代码(可重现的示例)。
-
PC 规格:Windows 8.1 GTX 1060 6GB Intel i7-4770 软件规格:Nvidia Geforce Experience Driver 451.81 CudNN 10.1(Windows 7 版本)Cuda 10.1.243 Conda Python 3.6.10 Tensorflow 2.2.0跨度>
-
感谢您的更新。您确定使用 cuDNN 版本吗?没有
10.1版本,您应该在当前版本的TF 中使用7.6.5。您是否使用 Cuda (developer.nvidia.com/cuda-10.1-download-archive-update2) 的更新 2?我建议使用 Windows 8.1 版本,因为这是您的操作系统。 -
对不起,我的意思显然是我使用的是支持 10.1 版本的 cuda 的 7.6.5 版本的 CuDNN。我的错。关于 Cuda 的更新 2,我实际上不确定,我想说不,因为我记得它,但我的 nvcc --version 给了我以下信息:nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005 -2019 NVIDIA Corporation 基于 Sun_Jul_28_19:12:52_Pacific_Daylight_Time_ Cuda 编译工具,版本 10.1,V10.1.243
-
@Nerxis 我已经解决了这个问题,查看帖子上的答案。
标签: python pandas machine-learning keras gpu