Tensorflow 在训练 yolo 时报告了 CUDA_ERROR_ILLEGAL_ADDRESS 错误

问题描述 投票:0回答:1

这是一个非常奇怪的错误。 环境:tf 1.12 + cuda9.0 + cudnn 7.5 + 单RTX 2080

今天我尝试在我的新设备上训练 YOLO V3 网络。批量大小为 4。一开始一切都很顺利,训练照常开始,我可以看到训练过程中损失的减少。

但是,在第35轮左右,它报告了一条消息:

2020-03-20 13:52:01.404576: E tensorflow/stream_executor/cuda/cuda_event.cc:48] 事件状态轮询错误:无法查询事件:CUDA_ERROR_ILLEGAL_ADDRESS:遇到非法内存访问 2020-03-20 13:52:01.404908:F tensorflow/core/common_runtime/gpu/gpu_event_mgr.cc:274] 意外事件状态:1

并退出火车流程。

我已经尝试过好几次了。它是随机发生的。可能是训练过程开始后 30 分钟或几个小时。

但是如果我将批量大小更改为2。它可以训练成功。

那么为什么会发生这种情况呢?如果我的环境不合适或者不适合RTX 2080,这个错误应该发生在火车进度的早期,但中间。我的 yolo 网络中的层在开始时都是可训练的,因此在训练过程中没有任何变化。为什么第一轮可以训练正确,但到了中间却失败了?为什么较小的批量可以成功训练?

我现在应该做什么?我能想到的解决方案是: 1:在cuda 10 + cudnn 7.5中编译tf 1.12并重试。 2:也许更新tensorflow和cuda? 都花了很多钱。

python tensorflow yolo
1个回答
0
投票

检查 Cuda/Cudnn/Driver 版本是否适合您的卡 https://docs.nvidia.com/deeplearning/cudnn/support-matrix/index.html#cudnn-versions-764-765.

如果上述检查结果正常,则此问题可能是由于 GPU 卡损坏所致,如 @ChrisM 所评论。

© www.soinside.com 2019 - 2024. All rights reserved.