首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mask-RCNN,ValueError:无法将输入数组从形状(70)广播到形状(1)

Mask-RCNN,ValueError:无法将输入数组从形状(70)广播到形状(1)
EN

Stack Overflow用户
提问于 2019-09-10 00:46:06
回答 2查看 575关注 0票数 2

我正在做一个项目,通过使用Mask-RCNN在SpaceNet数据集上检测建筑物。当我运行这段代码时:

代码语言:javascript
复制
model.train(dataset_train, dataset_val, 
            learning_rate=config.LEARNING_RATE, 
            epochs=1, 
            layers='heads')

我得到了这个错误:

代码语言:javascript
复制
    1772             batch_images[b] = mold_image(image.astype(np.float32), config)

-> 1773             batch_gt_class_ids[b, :gt_class_ids.shape[0]] = gt_class_ids

   1774             batch_gt_boxes[b, :gt_boxes.shape[0]] = gt_boxes

   1775             batch_gt_masks[b, :, :, :gt_masks.shape[-1]] = gt_masks

ValueError:无法将输入数组从形状(70)广播到形状(1)

还收到了这样的警告:

当我调试变量'gt_class_ids‘和'batch_gt_class_ids’时,我得到了如下结果:

EN

回答 2

Stack Overflow用户

发布于 2019-09-10 18:25:41

正如@Mahesh所说,我调试了变量gt_class_ids,并意识到它的形状是(x,1)。“x”可以是70、15或其他任何值,问题出在gt_class_ids.shape[0]部分。gt_class_ids.shape[0]给了我们'x',x也可以是任何数字。所以我去了

model.py

(我的方向是: C:\Users\MUSTAFAAKTAS\Desktop\SpaceNet_MaskRCNN\mrcnn\model.py)

文件,并更改为batch_gt_class_ids[b, :gt_class_ids.shape[1]] = gt_class_ids

而是batch_gt_class_ids[b, :gt_class_ids.shape[0]] = gt_class_ids

因此,它返回'1‘而不是'x’。

这个解决方案对我很有效:)

票数 1
EN

Stack Overflow用户

发布于 2019-09-10 01:20:55

ValueError: could not broadcast input array from shape (70) into shape (1)表示在1773行batch_gt_boxes[b, :gt_boxes.shape[0]] = gt_boxes中存在阵列形状不匹配,更具体地说,您尝试将值从形状70的数组广播到形状1的数组。

您能否在此脚本上运行调试器并共享gt_class_idsbatch_gt_class_ids的值?这可以帮助更好地解决问题。谢谢

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57858127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档