Tensorflow 检查失败:状态 == CUDNN_STATUS_SUCCESS (7 vs. 0)设置 cuDNN 流失败

当我运行我的 Tensorflow Keras 模型时,有时会在一个周期后停止并抛出以下错误:

tensorflow/stream_executor/dnn.cc:613] CUDNN_STATUS_EXECUTION_FAILEDin 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 版本,在大约三天前之前一直正常运行,直到开始出现这个错误。我的模型中还包含以下回调函数,以便在本地保存检查点和周期。请注意,我使用的是 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.1GTX 1060 6GBIntel i7-4770Software Specs:Nvidia Geforce Experience Driver 451.81CuDNN 7.6.5 (windows 7 version)Cuda 10.1.243Conda Python 3.6.10Tensorflow 2.2.0

回答:

所以我找到了错误的原因,你需要将 Nvidia 驱动程序降级到版本 431.36。高于该版本的驱动程序会导致 Tensorflow 以上述方式崩溃。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注