错误: tensorflow.python.framework.errors_impl.OutOfRangeError的解决方案

近日,在使用CascadeRCNN完成目标检测任务时,我在使用这个模型训练自己的数据集时出现了如下错误:

 tensorflow.python.framework.errors_impl.OutOfRangeError: PaddingFIFOQueue '_1_get_batch/batch/padding_fifo_queue' is closed and has insufficient elements (requested 1, current size 0)

         [[node get_batch/batch (defined at ../data/io/read_tfrecord.py:98) ]]

具体如下截图所示:

我使用的教程是这个链接:cascade r-cnn训练和测试(tensorflow框架)

在出现这个错误的时候,以为是数据集的错误,在经过多次检查数据,并且删掉运行报错的图片等尝试多次无果后,最终选择重新制作数据才解决掉这个错误。注意,训练所使用的数据集在FasterRCNN模型是能够训练起来的。

事后回想,可能有两个地方导致出现这个错误。

1、作者的教程里面有段标红的文字当时我选择忽略了。

我当时我根本没有做过这步,我以为VOC格式里面数据集已经划分好测试集和训练集了,所以就没有管这个步骤了,后来证明代码作者根本没有管VOC里面的txt文件。所以我觉得这个错误可能也是引发这个错误的原因。

2、在经过重新制作数据集没有出现这个错误后,后面又出现了这个错误,这次又仔细检查了数据集,发现在制作VOC2007数据集的时候,图片名字竟然有中文(巨坑),导致制作出来的txt乱码了,然后我在重新制作数据集的过程中,指定了encoding=’utf-8’编码,然后再把数据丢进模型去训练,最终解决了这个错误。

3、一月十七日更新

这次又遇到了这个错误,上面两个解决办法都没能解决这个问题,这次推测有可能是图片名称太复杂导致的原因,因为图片名称包含各种奇怪的符号,于是这次选择了重命名图片和删除一些报错位置周围的图片来解决这个问题。最终成功解决。

现在也不能肯定出现这个错误到底是什么原因,不过我上面的两个解决方案是能够解决这个问题的,而我在网上查找到的资料大部分也是数据集的原因。后期如果再出现这个错误但是有了不同的解决方法的时候,我会更新这篇博客的。



如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
posted @   |旧市拾荒|  阅读(19674)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
历史上的今天:
2019-01-02 python爬虫学习之使用XPath解析开奖网站
点击右上角即可分享
微信分享提示