Tensorflow-GPU训练MTCNN出现错误-Could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED

简介: 在使用TensorFlow-GPU训练MTCNN时,如果遇到“Could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED”错误,通常是由于TensorFlow、CUDA和cuDNN版本不兼容或显存分配问题导致的,可以通过安装匹配的版本或在代码中设置动态显存分配来解决。

本人环境:

tensorflow-gpu 1.15
cuda 10.0
cudnn 7.6.4

错误原图:

E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_ALLOC_FAILED在这里插入图片描述

错因和解决方法:

如果你是因为tensorflow-gpu和cuda和cudnn的版本关系出现的报错,那只有重新安装相应的版本了,可参考我给出的版本。
如果你相关配置没有错误的情况下,tensorflow的gpu版本能正常调用,这时候出现这个错误就不是版本不匹配的问题了,严谨来讲就是你的显卡不兼容它的接口,无法正常申请到显存,出现显存设置的问题,CUDNN_STATUS_ALLOC_FAILE,看这个英文也很显而易见了,也就是这个意思,然后只需要在你的python文件中添加以下代码即可
from tensorflow.compat.v1 import ConfigProto
from tensorflow.compat.v1 import InteractiveSession

config = ConfigProto()
config.gpu_options.allow_growth = True
session = InteractiveSession(config=config)

config = ConfigProto()可在里面可对session进行参数配置,往往里面涉及到allow_soft_placement=False表示不允许tf自动选择一个存在并且可用的设备来运行操作, log_device_placement=False表示不打印log 之前用的Python Shell

config.gpu_options.allow_growth = True 可申请动态显存

session = InteractiveSession(config=config)这是让参数生效

解决后结果图:

在这里插入图片描述
程序成功运行,每次迭代之后的准确率、分类损失、bbox损失、landmark损失等都打印出来了。

补充:
你如果在跑程序出现tensorflow的版本兼容问题,而你用的tensorlfow是2.0以下的版本,而你所跑的程序是2.0以上的版本,这时候如果你不想要直接卸载重装的话,就直接通过把
import tensorflow as tf
换成
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
即可

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
目录
相关文章
融合AMD与NVIDIA GPU集群的MLOps:异构计算环境中的分布式训练架构实践
本文探讨了如何通过技术手段混合使用AMD与NVIDIA GPU集群以支持PyTorch分布式训练。面对CUDA与ROCm框架互操作性不足的问题,文章提出利用UCC和UCX等统一通信框架实现高效数据传输,并在异构Kubernetes集群中部署任务。通过解决轻度与强度异构环境下的挑战,如计算能力不平衡、内存容量差异及通信性能优化,文章展示了如何无需重构代码即可充分利用异构硬件资源。尽管存在RDMA验证不足、通信性能次优等局限性,但该方案为最大化GPU资源利用率、降低供应商锁定提供了可行路径。源代码已公开,供读者参考实践。
95 3
融合AMD与NVIDIA GPU集群的MLOps:异构计算环境中的分布式训练架构实践
MiniMind:2小时训练出你的专属AI!开源轻量级语言模型,个人GPU轻松搞定
MiniMind 是一个开源的超小型语言模型项目,帮助开发者以极低成本从零开始训练自己的语言模型,最小版本仅需25.8M参数,适合在普通个人GPU上快速训练。
421 10
MiniMind:2小时训练出你的专属AI!开源轻量级语言模型,个人GPU轻松搞定
Tensorflow error(三):failed to get convolution algorithm,cuDNN failed to initialize
这篇文章讨论了TensorFlow在进行卷积操作时可能遇到的“failed to get convolution algorithm”错误,通常由于cuDNN初始化失败引起,并提供了几种解决方案,包括调整GPU内存使用策略和确保CUDA、cuDNN与TensorFlow版本兼容性。
127 1
Tensorflow error(三):failed to get convolution algorithm,cuDNN failed to initialize
COMET:字节跳动开源MoE训练加速神器,单层1.96倍性能提升,节省百万GPU小时
COMET是字节跳动推出的针对Mixture-of-Experts(MoE)模型的优化系统,通过细粒度的计算-通信重叠技术,显著提升分布式训练效率,支持多种并行策略和大规模集群部署。
112 9
【大作业-03】手把手教你用tensorflow2.3训练自己的分类数据集
本教程详细介绍了如何使用TensorFlow 2.3训练自定义图像分类数据集,涵盖数据集收集、整理、划分及模型训练与测试全过程。提供完整代码示例及图形界面应用开发指导,适合初学者快速上手。[教程链接](https://www.bilibili.com/video/BV1rX4y1A7N8/),配套视频更易理解。
139 0
【大作业-03】手把手教你用tensorflow2.3训练自己的分类数据集
仅用4块GPU、不到3天训练出开源版GPT-4o,这是国内团队最新研究
【10月更文挑战第19天】中国科学院计算技术研究所提出了一种名为LLaMA-Omni的新型模型架构,实现与大型语言模型(LLMs)的低延迟、高质量语音交互。该模型集成了预训练的语音编码器、语音适配器、LLM和流式语音解码器,能够在不进行语音转录的情况下直接生成文本和语音响应,显著提升了用户体验。实验结果显示,LLaMA-Omni的响应延迟低至226ms,具有创新性和实用性。
283 1
GPU 加速与 PyTorch:最大化硬件性能提升训练速度
【8月更文第29天】GPU(图形处理单元)因其并行计算能力而成为深度学习领域的重要组成部分。本文将介绍如何利用PyTorch来高效地利用GPU进行深度学习模型的训练,从而最大化训练速度。我们将讨论如何配置环境、选择合适的硬件、编写高效的代码以及利用高级特性来提高性能。
1548 1
【Tensorflow+keras】Keras API两种训练GAN网络的方式
使用Keras API以两种不同方式训练条件生成对抗网络(CGAN)的示例代码:一种是使用train_on_batch方法,另一种是使用tf.GradientTape进行自定义训练循环。
87 5
【Tensorflow+keras】解决cuDNN launch failure : input shape ([32,2,8,8]) [[{{node sequential_1/batch_nor
在使用TensorFlow 2.0和Keras训练生成对抗网络(GAN)时,遇到了“cuDNN launch failure”错误,特别是在调用self.generator.predict方法时出现,输入形状为([32,2,8,8])。此问题可能源于输入数据形状与模型期望的形状不匹配或cuDNN版本不兼容。解决方案包括设置GPU内存增长、检查模型定义和输入数据形状、以及确保TensorFlow和cuDNN版本兼容。
103 1
深度解析 Uno Platform 离线状态处理技巧:从网络检测到本地存储同步,全方位提升跨平台应用在无网环境下的用户体验与数据管理策略
【8月更文挑战第31天】处理离线状态下的用户体验是现代应用开发的关键。本文通过在线笔记应用案例,介绍如何使用 Uno Platform 优雅地应对离线状态。首先,利用 `NetworkInformation` 类检测网络状态;其次,使用 SQLite 实现离线存储;然后,在网络恢复时同步数据;最后,通过 UI 反馈提升用户体验。
214 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等