pvanet训练遇到的一些问题

还是去github上py-faster-rcnn上搜的解决方法。
这个问题:
查看numpy版本命令
python -c "import numpy; print numpy.version.version"
TypeError: 'numpy.float64' object cannot be interpreted as an index
用了 sudo pip install -U numpy==1.11.0   降级numpy1.11.0
结果有新问题ImportError: numpy.core.multiarray failed to import
坑爹的是解决这个问题是要升级numpy 于是又升回去了pip install -U numpy
又回到了
TypeError: 'numpy.float64' object cannot be interpreted as an index这个问题上。然后搜这个问题还有另一个解决办法
这个问题的本质就是数据类型的不匹配。所以只要把这个用到numpy.float64的地方改成int类型就可以了,这里面一共有几处需要改:
 

 lib/roi_data_layer/minibatch.py这个文件里面

第26行line 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)

需要改的地方还有以下几处

把.astype(np.int) 加到后面

lib/datasets/ds_utils.py line 12 : hashes = np.round(boxes * scale).dot(v)变成

lib/datasets/ds_utils.py line 12 : hashes = np.round(boxes * scale).dot(v).astype(np.int)

lib/fast_rcnn/test.py line 129 : hashes = np.round(blobs['rois'] * cfg.DEDUP_BOXES).dot(v)变成

lib/fast_rcnn/test.py line 129 : hashes = np.round(blobs['rois'] * cfg.DEDUP_BOXES).dot(v).astype(np.int)lib/rpn/proposal_target_layer.py line 60 : fg_rois_per_image = np.round(cfg.TRAIN.FG_FRACTION * rois_per_image)变成

lib/rpn/proposal_target_layer.py line 60 : fg_rois_per_image = np.round(cfg.TRAIN.FG_FRACTION * rois_per_image).astype(np.int)

我的问题就解决了,可以训练了

解决方法:
 

An easier solution is to add the following lines to lib/proposal_target_layer.pyAfter line 126,

start=int(start)
end=int(end)

After line 166,

fg_rois_per_this_image=int(fg_rois_per_this_image)

用自己的数据进行训练的过程中,加入了一部分机器标注的数据,训练报错:

/tools/../lib/fast_rcnn/bbox_transform.py:23: RuntimeWarning: invalid value

然后出现loss=nan的情况

问题分析解决:机器标注的坐标框越界问题

修改faster-rcnn-root/lib/datasets/pascal.py

左上角的坐标(x1,y1)可能为0

x1 = float(bbox.find('xmin').text) #- 1 注释掉你数据里不能减1的地方

y1 = float(bbox.find('ymin').text) #- 1

x2 = float(bbox.find('xmax').text) - 1

y2 = float(bbox.find('ymax').text) - 1

参考文章:https://blog.csdn.net/u013010889/article/details/53193027

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值