当我运行我的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版本,直到大约三天前它开始给我这个错误时,它一直没有出现问题。我的模型中还包含以下回调,以便它在本地保存检查点和纪元。请注意,我正在使用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和软件规格如下
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
答案 0 :(得分:1)
因此,我找到了导致错误的原因,您需要将Nvidia驱动程序降级到431.36版。以上所有使tensorflow崩溃的原因。
答案 1 :(得分:0)
我有类似的问题,并且意识到这是由于我的张量流版本引起的。 试试这个代码段。
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior() #disable for tensorFlow V2
physical_devices = tf.config.experimental.list_physical_devices('GPU')
tf.config.experimental.set_memory_growth(physical_devices[0], True)