frcnn系列错误: TypeError: 'numpy.float64' object cannot be interpreted as an index 的解决方案

7 篇文章 0 订阅
7 篇文章 0 订阅

1.TypeError: 'numpy.float64' object cannot be interpreted as an index 的解决方案

        看了很多博客都说要调整numpy版本到1.11.0,这个方法或许能用,但不是根本方法,因为为了frcnn代码去调整一个包库的版本,属实饮鸩止渴,最好的方法就是去修改代码中出问题的地方,标记一下一个回答frcnn爬坑记录

需要补充的是,它的最后一个改错:

修改 /home/XXX/py-faster-rcnn/lib/rpn/proposal_target_layer.py,转到123行:

for ind in inds:
        cls = clss[ind]
        start = 4 * cls
        end = 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

这里的ind,start,end都是 numpy.int 类型,这种类型的数据不能作为索引,所以必须对其进行强制类型转换,转化结果如下:

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_weight

最后一个单词,weights少了一个s,同时,/home/XXX/py-faster-rcnn/lib/roi_data_layer中也有一样的这个代码,也改掉。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值