使用COCOAPI操作COCO数据集 遇到的问题 TypeError: 'numpy.float64' object cannot be interpreted

使用COCOAPI操作COCO数据集 遇到的问题 TypeError: ‘numpy.float64’ object cannot be interpreted as an integer

flyfish

详细提示是

line 518
self.iouThrs = np.linspace(.5, 0.95, np.round((0.95 - .5) / .05) + 1, endpoint=True)
File "/media/ubuntu/data/env/lib/python3.6/site-packages/numpy/core/function_base.py", line 121, in 
TypeError: 'numpy.float64' object cannot be interpreted as an integer

也就是出错在
self.iouThrs = np.linspace(.5, 0.95, np.round((0.95 - .5) / .05) + 1, endpoint=True)
这句

可以更改代码,不止有一处

self.iouThrs = np.linspace(.5, 0.95, int(np.round((0.95 - .5) / .05)) + 1, endpoint=True)
self.recThrs = np.linspace(.0, 1.00, int(np.round((1.00 - .0) / .01)) + 1, endpoint=True)

因为官网已修复这个bug,可以使用新的代码重新安装
使用源码安装 pycocotools
1 确保python命令行执行的是python3

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150

最后的100和150是priority

Python 3.6.9 (default, Nov  7 2019, 10:44:02) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.

2 下载源码

git clone https://github.com/cocodataset/cocoapi.git

3 安装
切换到 cocoapi\PythonAPI目录

make -j8
python setup.py install

或者按照下面的执行

# To compile and install locally run 
python setup.py build_ext --inplace
# To install library to Python site-packages run 
python setup.py build_ext install
Epoch: [0] Total time: 0:01:54 (0.1757 s / it) Averaged stats: lr: 0.000100 class_error: 100.00 loss: 29.2090 (36.1925) loss_ce: 1.8000 (2.0008) loss_bbox: 1.3723 (2.0670) loss_giou: 1.7282 (1.9001) loss_ce_0: 1.8637 (2.0402) loss_bbox_0: 1.4306 (2.2647) loss_giou_0: 1.6208 (1.8966) loss_ce_1: 1.8461 (2.0364) loss_bbox_1: 1.4204 (2.0985) loss_giou_1: 1.7147 (1.8954) loss_ce_2: 1.8117 (2.0185) loss_bbox_2: 1.3273 (2.0935) loss_giou_2: 1.6820 (1.8940) loss_ce_3: 1.8328 (2.0125) loss_bbox_3: 1.3845 (2.0841) loss_giou_3: 1.7587 (1.9030) loss_ce_4: 1.8481 (2.0129) loss_bbox_4: 1.4108 (2.0731) loss_giou_4: 1.6465 (1.9012) loss_ce_unscaled: 1.8000 (2.0008) class_error_unscaled: 96.2500 (96.2843) loss_bbox_unscaled: 0.2745 (0.4134) loss_giou_unscaled: 0.8641 (0.9500) cardinality_error_unscaled: 8.2500 (10.8667) loss_ce_0_unscaled: 1.8637 (2.0402) loss_bbox_0_unscaled: 0.2861 (0.4529) loss_giou_0_unscaled: 0.8104 (0.9483) cardinality_error_0_unscaled: 6.5000 (11.0054) loss_ce_1_unscaled: 1.8461 (2.0364) loss_bbox_1_unscaled: 0.2841 (0.4197) loss_giou_1_unscaled: 0.8574 (0.9477) cardinality_error_1_unscaled: 8.0000 (9.4896) loss_ce_2_unscaled: 1.8117 (2.0185) loss_bbox_2_unscaled: 0.2655 (0.4187) loss_giou_2_unscaled: 0.8410 (0.9470) cardinality_error_2_unscaled: 6.5000 (9.9639) loss_ce_3_unscaled: 1.8328 (2.0125) loss_bbox_3_unscaled: 0.2769 (0.4168) loss_giou_3_unscaled: 0.8793 (0.9515) cardinality_error_3_unscaled: 6.0000 (10.4313) loss_ce_4_unscaled: 1.8481 (2.0129) loss_bbox_4_unscaled: 0.2822 (0.4146) loss_giou_4_unscaled: 0.8232 (0.9506) cardinality_error_4_unscaled: 6.5000 (10.3648) Traceback (most recent call last): File "/root/autodl-tmp/detr/main.py", line 248, in <module> main(args) File "/root/autodl-tmp/detr/main.py", line 214, in main test_stats, coco_evaluator = evaluate( ^^^^^^^^^ File "/root/miniconda3/lib/python3.12/site-packages/torch/utils/_contextlib.py", line 116, in decorate_context return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/root/autodl-tmp/detr/engine.py", line 77, in evaluate coco_evaluator = CocoEvaluator(base_ds, iou_types) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/root/autodl-tmp/detr/datasets/coco_eval.py", line 31, in __init__ self.coco_eval[iou_type] = COCOeval(coco_gt, iouType=iou_type) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/root/miniconda3/lib/python3.12/site-packages/pycocotools/cocoeval.py", line 76, in __init__ self.params = Params(iouType=iouType) # parameters ^^^^^^^^^^^^^^^^^^^^^^^ File "/root/miniconda3/lib/python3.12/site-packages/pycocotools/cocoeval.py", line 527, in __init__ self.setDetParams() File "/root/miniconda3/lib/python3.12/site-packages/pycocotools/cocoeval.py", line 507, in setDetParams self.iouThrs = np.linspace(.5, 0.95, np.round((0.95 - .5) / .05) + 1, endpoint=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/root/miniconda3/lib/python3.12/site-packages/numpy/_core/function_base.py", line 128, in linspace num = operator.index(num) ^^^^^^^^^^^^^^^^^^^ TypeError: 'numpy.float64' object cannot be interpreted as an integer
最新发布
06-15
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二分掌柜的

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值