Faster-RCNN 训练自己数据集的坑记录

本文记录了使用Faster-RCNN在CPU上训练自定义数据集时遇到的错误及解决办法,包括VOCdevkit2007文件夹缺失、Caffe配置、.pkl文件问题、代码错误等,并提供了相应的解决方案。

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

主要照这篇博客进行训练配置,因为没有GPU所以好多坑,CPU训练可以参见这篇博客

正所谓,跑通了的都一样,错误千万样。按照教程来也是坑多

训练:

 python train_faster_rcnn_alt_opt.py  --net_name ZF --weights /home/lys/py-faster-rcnn/data/imagenet_models/ZF.v2.caffemodel --cfg /home/lys/py-faster-rcnn/experiments/cfgs/faster_rcnn_alt_opt.yml  --imdb voc_2007_trainval



error1:

Cannot use GPU in CPU-only Caffe: check mode.

solution1:

把py-faster-rcnn/tools/下的所有py文件中的GPU注释掉,然后mode设为cpu。示例如下:

#    caffe.set_mode_gpu()
    caffe.set_mode_cpu()
#    if args.gpu_id is not None:
#        caffe.set_device(args.gpu_id)

error2:
Process Process-1:
Traceback (most recent call last):
  File "/usr/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap
    self.run()
  File "/usr/lib/python2.7/multiprocessing/process.py", line 114, in run
    self._target(*self._args, **self._kwargs)
  File "train_faster_rcnn_alt_opt.py", line 125, in train_rpn
    roidb, imdb = get_roidb(imdb_name)
  File "train_faster_rcnn_alt_opt.py", line 62, in get_roidb
    imdb = get_imdb(imdb_name)
  File "/home/lys/py-faster-rcnn/tools/../lib/datasets/factory.py", line 38, in get_imdb
    return __sets[name]()
  File "/home/lys/py-faster-rcnn/tools/../lib/datasets/factory.py", line 20, in <lambda>
    __sets[name] = (lambda split=split, year=year: pascal_voc(split, year))
  File "/home/lys/py-faster-rcnn/tools/../lib/datasets/pascal_voc.py", line 39, in __init__
    self._image_index = self._load_image_set_index()
  File "/home/lys/py-faster-rcnn/tools/../lib/datasets/pascal_voc.py", line 83, in _load_image_set_index
    'Path does not exist: {}'.format(image_set_file)
AssertionError: Path does not exist: /home/lys/py-faster-rcnn/data/VOCdevkit2007/VOC2007/ImageSets/Main/trainval.txt

solution2:

智障错误。只顾了查看trainval.txtz在不在了,没有创建VOCdevkit2007文件夹,直接就VOC2007了

error3:

Traceback (most recent call last):
  File "/usr/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap
    self.run()
  File "/usr/lib/python2.7/multiprocessing/process.py", line 114, in run
    self._target(*self._args, **self._kwargs)
  File "train_faster_rcnn_alt_opt.py", line 125, in train_rpn
    roidb, imdb = get_roidb(imdb_name)
  File "train_faster_rcnn_alt
### 使用 Faster R-CNN 训练自定义数据集 为了使用 Faster R-CNN 对自定义数据集进行训练,需遵循一系列特定步骤来确保模型能够有效学习并适应新数据。这些步骤不仅涉及数据预处理和模型配置调整,还包括必要的环境搭建。 #### 数据准备 对于自定义数据集的准备工作至关重要。通常情况下,建议将数据转换成类似于 Pascal VOC 或 COCO 的标准格式[^2]。这一步骤包括但不限于图像文件整理、标注文件创建以及划分训练集与测试集。具体操作可以参照官方文档或社区指南中的最佳实践案例。 #### 环境配置 在开始之前,确认已安装所有依赖库,并按照指定版本号构建适合当前项目的开发环境。此过程中可能涉及到 Python 版本的选择、PyTorch 安装以及其他第三方工具链的支持[^5]。此外,还需下载预训练权重作为初始化起点,以便加速收敛速度并提高最终性能表现。 #### 参数设定 当一切就绪之后,在启动实际训练流程前还需要仔细规划各项超参数的选择。例如 `checksession`、`checkepoch` 和 `checkpoint` 这些用于控制保存周期的关键变量应当依据实际情况灵活调整[^4]。通过合理设置此类选项可以帮助更好地管理迭代过程中的中间产物,从而便于后续分析评估不同阶段下的成果差异。 ```bash $ python trainval_net.py --dataset pascal_voc --net vgg16 \ --bs 1 --lr 0.001 --max_epochs 20 \ --checksession 1 --checkepoch 20 --checkpoint 10021 \ --cuda --mGPUs --use_tfboard ``` 上述命令展示了如何调用训练脚本来启动一次完整的实验运行实例。其中包含了网络架构(`--net`)、批量大小(`--bs`)、初始学习率(`--lr`)等多个重要参数项。 ### 设计对比实验方案 针对同一组输入样本分别采用多种策略实施多次独立重复试验,以此为基础比较各方法间优劣之处: - **基线模型**:基于原始论文提出的经典结构不变; - **改进版A**:引入额外特征增强机制(如 FPN),观察其对定位精度的影响程度; - **改进版B**:尝试替换骨干提取器为更先进的 ResNet 或 MobileNet 变体,探讨迁移能力边界; - **混合模式C**:综合考虑 A+B 方向上的优化措施,全面考察整体效能提升幅度; 每一轮次结束后均应妥善记录下相应的指标得分情况(AP, AR等),进而绘制折线图直观展示变化趋势走向。同时也要关注计算资源消耗水平,力求找到性价比最高的解决方案组合形式。
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值