一、环境:
win10 + gpu 3090 + maskrcnn + tensorflow2.6.0;
二、报错信息如下:
IndexError: boolean index did not match indexed array along dimension 0; dimension is 1 but corresponding boolean dimension is 2
image_id 549 image_id 85 8/20 [===========>..................] - ETA: 13:30 - batch: 3.5000 - size: 30.0000 - loss: 40.9189 - rpn_class_loss: 16.8697 - rpn_bbox_loss: 15.0835 - mrcnn_class_loss: 3.8857 - mrcnn_bbox_loss: 4.4410 - mrcnn_mask_loss: 0.6390image_id 1020 image_id 1602 image_id 523 image_id 490 image_id 2239 image_id 474 image_id 592 image_id 2203 Traceback (most recent call last): File "D:/python-workspace/Mask_RCNN-master2/train.py", line 425, in <module> layers='heads') File "D:\python-workspace\Mask_RCNN-master2\mrcnn\model.py", line 2367, in train use_multiprocessing=workers > 1, File "D:\Anaconda3\envs\py36_maskrcnn_env_bak\lib\site-packages\keras\engine\training_v1.py", line 796, in fit use_multiprocessing=use_multiprocessing) File "D:\Anaconda3\envs\py36_maskrcnn_env_bak\lib\site-packages\keras\engine\training_generator_v1.py", line 586, in fit steps_name='steps_per_epoch') File "D:\Anaconda3\envs\py36_maskrcnn_env_bak\lib\site-packages\keras\engine\training_generator_v1.py", line 212, in model_iteration batch_data = _get_next_batch(generator) File "D:\Anaconda3\envs\py36_maskrcnn_env_bak\lib\site-packages\keras\engine\training_generator_v1.py", line 346, in _get_next_batch generator_output = next(generator) File "D:\Anaconda3\envs\py36_maskrcnn_env_bak\lib\site-packages\keras\utils\data_utils.py", line 497, in iter_sequence_infinite for item in seq: File "D:\Anaconda3\envs\py36_maskrcnn_env_bak\lib\site-packages\keras\utils\data_utils.py", line 483, in __iter__ for item in (self[i] for i in range(len(self))): File "D:\Anaconda3\envs\py36_maskrcnn_env_bak\lib\site-packages\keras\utils\data_utils.py", line 483, in <genexpr> for item in (self[i] for i in range(len(self))): File "D:\python-workspace\Mask_RCNN-master2\mrcnn\model.py", line 1720, in __getitem__ augmentation=self.augmentation) File "D:\python-workspace\Mask_RCNN-master2\mrcnn\model.py", line 1279, in load_image_gt class_ids = class_ids[_idx] IndexError: boolean index did not match indexed array along dimension 0; dimension is 1 but corresponding boolean dimension is 2 Process finished with exit code 1三、解决方法:
1、首先排除train.py文件的NUM_CLASSES、NUM_CLASSES、self.add_class()、labels[i].find();
2、config.py文件的NAME、NUM_CLASSES。
经排查,上面都没有问题,因为之前程序运行是正常的,训练也是正常的,只是由于改变了样本集和分类,所以问题应该是图片打标注的时候,引入了未定义的分类名称,需要逐个图片检查标注的label,果然存在异常分类。
对应的json文件也是错的,需要修改标注和重新生成过程文件。
目标检测,打标注一定要细心、细心、再细心。