tensorflow-gpu报错:tensorflow.python.framework.errors_impl.UnknownError: 2 root error(s) found

本文详细记录了解决tensorflow-gpu运行时遇到的UnknownError问题的过程。尝试了检查tensorflow、CUDA和cuDNN版本一致性,分配显存及添加特定代码等方法,最终成功继续训练。尽管有人认为某代码可能使训练转为CPU,但对作者有效。
部署运行你感兴趣的模型镜像

一、报错内容

tensorflow.python.framework.errors_impl.UnknownError: 2 root error(s) found.
  (0) Unknown: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above.
	 [[{{node conv2d_24/convolution}}]]
  (1) Unknown: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above.
	 [[{{node conv2d_24/convolution}}]]
	 [[conv2d_46/truediv/_417]]
0 successful operations.
0 derived errors ignored.

二、解决方案

import keras
import tensorflow as tf
import os

os.environ["CUDA_VISIBLE_DEVICES"] = "1"#因为是单GPU训练,所以需要加上这一行代码
config = tf.ConfigProto()#t配置tf.Session的运算方式
config.gpu_options.allow_growth = True  # TensorFlow按需分配显存
config.gpu_options.per_process_gpu_memory_fraction = 0.5  # 指定显存分配比例
keras.backend.tensorflow_backend.set_session(tf.Session(config=config))

以上就是最终方案。


下面是解决的过程: 

看了很多解决方案,解决方案可大致分为三类:

(1)查看tensorflow+cuda+cudnn安装版本是否一致,下面这篇文章里有教怎么查看是否一致。

Tensorflow、CUDA、cuDNN详细的下载安装过程_cudnn下载_机智的小神仙儿的博客-优快云博客

首先进入Tensorflow官网:在 Windows 环境中从源代码构建  |  TensorFlow
找到windows对应的版本的模块,ctrl+F输入tensorflow

(2)tensorflow按需分配显存

import keras
import tensorflow as tf

config = tf.ConfigProto()#t配置tf.Session的运算方式
config.gpu_options.allow_growth = True  # TensorFlow按需分配显存
config.gpu_options.per_process_gpu_memory_fraction = 0.5  # 指定显存分配比例
keras.backend.tensorflow_backend.set_session(tf.Session(config=config))

 这个类似的来源太多了,就先不标注了。

这个方案我试了,但还是没解决问题。

(3)由于单GPU训练,因此加上一行代码 

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "1"

源自:tensorflow-gpu测试报错:tensorflow.python.framework.errors_impl.UnknownError: 2 root error(s) found_喜欢小黄鸭的焦哥的博客-优快云博客

所以最后把(2)和(3)结合了一下,成功继续训练。

不过,这篇文章有人评论说是加上这行代码会变成cpu?我不太确定,有大佬知道的可以留言交流一下。

对我来说,最后可算是继续训练了/撒花

记录一下运行的又一个坎。

您可能感兴趣的与本文相关的镜像

PyTorch 2.9

PyTorch 2.9

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值