faster-rcnn训练自己的数据集遇到的问题

本文针对py-faster-rcnn项目中常见的运行错误进行了解析,并提供了详细的解决步骤,包括处理缺失文件、protobuf版本冲突及numpy类型转换等问题。

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

我汇总了一些网上很难找到答案的错误,(可能只有我自己觉得很难)
当之前运行出错,然后修改完再运行是一定要删除data/cache文件和py-faster-rcnn中所有的.pyc文件
错误1:

F0525 16:55:08.301654 12360 io.cpp:54] Check failed: fd != -1 (-1 vs. -1) File not found: data/imagenet_models/ZF.v2.caffemodel
*** Check failure stack trace: ***

下载ZF.caffemodel文件:

错误2:

pb2.text_format.Merge(f.read(), self.solver_param)
AttributeError: 'module' object has no attribute 'text_format'
解决办法:

解决办法:
办法一:在文件./lib/fast_rcnn/train.py增加一行import google.protobuf.text_format
办法二:sudo pip install protobuf==2.5.0


File "mtrand.pyx", line 1192, in mtrand.RandomState.choice
TypeError: 'numpy.float64' object cannot be interpreted as an index

网上很多解决办法是这样的

调整numpy版本
ubuntu@ubuntu-System-Product-Name:~/py-faster-rcnn$ python
>>> import numpy
>>> print numpy.version.version
1.14.3
>>> quit()
ubuntu@ubuntu-System-Product-Name:~/py-faster-rcnn$ pip install -U numpy==1.11.0  

但是之后会遇到如下问题:

安装之后遇到问题:
from ._caffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, \
ImportError: numpy.core.multiarray failed to import

解决办法

1) /home/xxx/py-faster-rcnn/lib/roi_data_layer/minibatch.py

将第26行:fg_rois_per_image = np.round(cfg.TRAIN.FG_FRACTION * rois_per_image)
改为:fg_rois_per_image = np.round(cfg.TRAIN.FG_FRACTION * rois_per_image).astype(np.int)

2) /home/xxx/py-faster-rcnn/lib/datasets/ds_utils.py

将第12行:hashes = np.round(boxes * scale).dot(v)
改为:hashes = np.round(boxes * scale).dot(v).astype(np.int)

3) /home/xxx/py-faster-rcnn/lib/fast_rcnn/test.py

将第129行: hashes = np.round(blobs['rois'] * cfg.DEDUP_BOXES).dot(v)
改为: hashes = np.round(blobs['rois'] * cfg.DEDUP_BOXES).dot(v).astype(np.int)

4) /home/xxx/py-faster-rcnn/lib/rpn/proposal_target_layer.py

将第60行:fg_rois_per_image = np.round(cfg.TRAIN.FG_FRACTION * rois_per_image)
改为:fg_rois_per_image = np.round(cfg.TRAIN.FG_FRACTION * rois_per_image).astype(np.int)

但是呢,还没有完,你还会遇到提示你TypeError: slice indices must be integers or None or have an __index__ method的问题
!1)修改/home/ubuntu/py-faster-rcnn/lib/roi_data_layer/minibatch.py从第172行 开始的一个for语句:

 for ind in inds:
    ind = int(ind)
        cls = clss[ind]
        start = int(4 * cls)
        end = int(start + 4)
        bbox_targets[ind, start:end] = bbox_target_data[ind, 1:]
        bbox_inside_weights[ind, start:end] = cfg.TRAIN.BBOX_INSIDE_WEIGHTS
    return bbox_targets, bbox_inside_weights

2)修改/home/ubuntu/py-faster-rcnn/lib/rpn/proposal_target_layer.py 从124行开始的for语句,与之前的文件中的语句相同,都是将其改为:

 for ind in inds:
    ind = int(ind)
        cls = clss[ind]
        start = int(4 * cls)
        end = int(start + 4)
        bbox_targets[ind, start:end] = bbox_target_data[ind, 1:]
        bbox_inside_weights[ind, start:end] = cfg.TRAIN.BBOX_INSIDE_WEIGHTS
    return bbox_targets, bbox_inside_weights

因为原先的for语句中的ind,start,end都是 numpy.int 类型,这种类型的数据不能作为索引,所以必须对其进行强制类型转换。

参考文献:
https://www.cnblogs.com/han1ning1/p/7858357.html

<think>好的,我需要帮助用户在py-faster-rcnn项目中下载预训练的VGG16模型。根据用户提供的引用信息,有几种方法可以下载这个模型。 首先,引用[1]提供了一个直接的下载链接:http://download.tensorflow.org/models/vgg_16_2016_08_28.tar.gz。用户可以直接用浏览器或迅雷下载这个文件,然后手动放置到项目的指定目录中。但用户提到可能无法打开某些链接,所以可能需要备用方法。 引用[2]和[3]提到通过运行脚本fetch_imagenet_models.sh来自动下载预训练模型。这个脚本位于项目的data/scripts目录下。用户只需要进入该目录并执行脚本即可。不过,用户可能遇到网络问题,导致脚本无法正常运行,这时候就需要手动下载。 引用[4]指出如果脚本无法下载,可以用迅雷手动下载,并将模型文件放入/py-faster-rcnn/data/imagenet_models目录中。这需要用户创建相应的文件夹结构,并确保文件名正确,例如VGG16.v2.caffemodel。 综合这些方法,用户可以选择自动脚本或手动下载。需要检查脚本是否有效,如果不行,就手动处理。同时,要确保模型文件放在正确的路径,避免后续训练或演示出错。最后,用户可能需要修改配置文件以适应自己的数据集,但这一步可能超出当前问题的范围,可以留到后续处理。</think>### 如何在 py-faster-rcnn 中下载预训练的 VGG16 模型 #### 方法一:通过脚本自动下载(推荐) 1. **进入项目脚本目录** ```bash cd py-faster-rcnn/data/scripts ``` 2. **执行下载脚本** ```bash ./fetch_faster_rcnn_models.sh ./fetch_imagenet_models.sh ``` 此脚本会自动下载预训练的 VGG16 模型(文件名如 `VGG16.v2.caffemodel`),并保存到 `py-faster-rcnn/data/imagenet_models` 目录[^2][^3]。 --- #### 方法二:手动下载(若脚本失效) 1. **直接下载模型文件** 使用浏览器或迅雷下载官方提供的模型文件: [VGG16 预训练模型下载链接](http://download.tensorflow.org/models/vgg_16_2016_08_28.tar.gz)[^1][^4] 2. **手动放置模型文件** - 在项目路径下创建目标目录: ```bash mkdir -p py-faster-rcnn/data/imagenet_models ``` - 将下载的 `vgg_16_2016_08_28.tar.gz` 解压,并将文件重命名为 `VGG16.v2.caffemodel`,放入上述目录[^4]。 --- #### 验证模型是否生效 运行项目演示时,若未报错提示模型缺失,则说明模型已正确加载: ```bash cd py-faster-rcnn ./tools/demo.py ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值