Keras、Tensorflow、CuDDN 初始化失败

Pab*_*oDK 2 python keras tensorflow cudnn

我有一台非常强大的 Windows PC(运行 Windows 10),它有 112GB 内存、16 个内核和 3 X Geforce RTX2070(不支持 SLI 等)。它正在运行 CuDNN 7.5 + Tensorflor 1.13 + Python 3.7

我的问题是我收到以下错误 - 每当我尝试运行 Keras 模型进行训练或对矩阵进行预测时。一开始我认为只有当我同时运行多个程序时才会发生这种情况,但事实并非如此,现在当我只运行 Keras 的单个实例时,我也会收到错误(通常 - 但并非总是如此)

CUBLAS_STATUS_ALLOC_FAILED 2019-06-15 19:33:25.267137:E tensorflow/stream_executor/cuda/cuda_dnn.cc:334] 无法创建 cudnn 句柄:CUDNN_STATUS_ALLOC_FAILED 201730c_FAILED6:-2exetens05205​​/20173020202008 或 E tensorflow/stream_executor/cuda/cuda_dnn.cc:334 cuda_dnn.cc:334] 无法创建 cudnn 句柄:CUDNN_STATUS_ALLOC_FAILED 异常:无法获得卷积算法。这可能是因为 cuDNN 初始化失败,所以尝试查看上面是否打印了警告日志消息。[[{{node conv2d_1/convolution}}]] [[{{nodedense_3/Sigmoid}}]] 获取卷积算法失败。这可能是因为 cuDNN 初始化失败,所以尝试查看上面是否打印了警告日志消息。[[{{node conv2d_1/convolution}}]] [[{{nodedense_3/Sigmoid}}]] 获取卷积算法失败。这可能是因为 cuDNN 初始化失败,所以尝试查看上面是否打印了警告日志消息。[[{{node conv2d_1/convolution}}]] [[{{nodedense_3/Sigmoid}}]]

Ben*_*rpc 5

在 Tensorflow 2.0 及更高版本上,您可以通过以下方式解决此问题:

os.environ['TF_FORCE_GPU_ALLOW_GROWTH'] = 'true'
Run Code Online (Sandbox Code Playgroud)

或者

physical_devices = tf.config.experimental.list_physical_devices('GPU')
if len(physical_devices) > 0:
    tf.config.experimental.set_memory_growth(physical_devices[0], True)
Run Code Online (Sandbox Code Playgroud)

  • 我认为您并不是有意缩进“if”。那是对的吗?另外为什么你只适用于一个GPU?谢谢。 (2认同)