Faster RCNN训练自己数据集报错记录及解决

本文记录了作者在Faster R-CNN项目中遇到的问题及解决过程,包括检查点恢复失败、AttributeError错误及显存溢出等问题,并提供了相应的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Faster R-CNN源码网址:https://github.com/dBeker/Faster-RCNN-TensorFlow-Python3.5点击打开链接

环境:python3.6 tensorflow-gpu1.13.0   无奈自己电脑跑不动,走的学校工作站3*12G1080Ti

从学习到实验复现花了小一周时间,记录一下一些报错和自己的调试过程

1.Restoring from checkpoint failed. This is most likely due to a mismatch between the current graph and the graph from the checkpoint. Please ensure that you have not altered the graph expected based on the checkpoint. Original error:  Assign requires shapes of both tensors to match. lhs shape= [xx,xx] rhs shape= [xx,xx] 

训练前需要删除data/cache文件,同时将训练好的新的模型复制到output文件。

2.AttributeError: ‘NoneType‘ object has no attribute ‘astype‘

数据集是否含有中文字符,demo.py中的CLASSES以及im_name是否修改

同时,im_name对应的文件夹data/demo的图片是否替换

3.超显存报错。

这个需要更好的服务器支持或者降低batch_size试试了,不过这个参数最好不要调整太多,对训练的结果会造成影响。

4.ImportError: No module named 'lib.utils.cython_bbox' 

安装包里有两个setup.py文件,两个都安装一下就可以解决这个问题(1.pythonAPI2.lib/utils文件中有一个)

5.运行train.py时出现“Unsuccessful TensorSliceReader constructor: Failed to find any matching files for ..../data/imagenet_weights/vgg16.ckp

有个下载链接,下载地址:http://download.tensorflow.org/models/vgg_16_2016_08_28.tar.gz

将这个文件重命名为vgg16.ckpt,新建文件夹imagenet_weights,把vgg16.ckpt放到imagenet_weights下,再将imagenet_weights文件夹拷贝到data文件夹下。一定记得改名!!!

还有些记不起来啦,主要是遇到了这些问题,应该是比较普遍哒,希望能够帮助到大家!!!

最后附上我跟的教程,成功运行!!

(16条消息) Windows 下 TensorFlow 和 Faster rcnn 详细安装步骤(二)_辣鸡博主已停更的博客-优快云博客

Windows +TensorFlow+Faster Rcnn 详细安装步骤(一)_辣鸡博主已停更的博客-优快云博客_windows-faster r-cnn数据库安装

### 解决 Faster R-CNN 运行时遇到的权限错误问题 当在运行 Faster R-CNN 项目过程中遇到 `PermissionError` 错误,通常是因为程序尝试访问某些资源(如文件或目录)而缺乏必要的读写权限。此问题可能发生在多个方面,包括但不限于数据加载器 (DataLoader) 工作进程试图打开图像文件或其他配置文件。 #### 可能的原因及解决方案: - **工作线程无法访问特定路径下的文件** 如果 DataLoader 的工作者进程抛出了 `PermissionError`,这表明这些子进程中至少有一个没有足够的权限来执行所需的操作。确保所有涉及的数据集路径对于 Python 脚本具有适当的读取/写入权限[^1]。 - **多线程或多处理环境中的权限设置** 当使用 PyTorch 的 `DataLoader` 并启用多线程 (`num_workers>0`) 或者多处理模式时,可能会因为父进程与子进程之间的权限差异而导致此类异常。可以考虑减少甚至关闭并行化选项(`num_workers=0`) 来排查是否与此有关[^2]。 - **临时文件夹或缓存位置的选择不当** 某些情况下,默认使用的临时存储区域也可能引发权限冲突。如果应用程序创建了任何中间产物或是依赖于操作系统的临时空间,则应确认这些地方不会受到安全策略的影响。可以通过调整参数指定自定义的工作区或者日志保存地点等方式绕过潜在的风险点[^3]。 - **检查文件和目录的存在性和可访问性** 对于由外部因素引起的 `FileNotFoundError` 和 `KeyError` 类型的问题,在正式调试之前应当先验证输入源的有效性以及其内部结构的一致性。特别是针对用户自定义的数据集,务必保证所提供的标签映射表、图片列表等辅助资料均处于预期状态之下[^4]。 ```python import os from pathlib import Path def verify_paths(paths_list): """Verify existence and accessibility of given paths.""" for path in paths_list: p = Path(path) if not p.exists(): raise FileNotFoundError(f"The specified path does not exist: {p}") elif not os.access(str(p), os.R_OK | os.W_OK): # Check read/write permissions raise PermissionError(f"Lack of proper access rights on this path: {p}") # Example usage before initializing the dataset loader verify_paths(['/path/to/images', '/path/to/json']) ``` 通过上述方法能够有效定位并修复大部分由于权限不足所造成的 `PermissionError` 故障现象。当然,具体实施还需结合实际开发环境中存在的具体情况灵活应对。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值