Mask_RCNN:ValueError: Dimension 1 in both shapes must be equal, but are 8 and 324.

Mask_RCNN:ValueError: Dimension 1 in both shapes must be equal, but are 8 and 324.

1.问题描述

2.原因

3.解决方法


1.问题描述

        前几天有人在之前Mask_RCNN预测文章中:

Mask_RCNN:使用自己训练好的模型进行预测https://blog.csdn.net/qq_15969343/article/details/80388311

评论了该问题:

软件环境:

Mask_RCNN版本基于:Python3,Keras,TensorFlow,我使用的具体版本为:

  • Python 3.6.3
  • TensorFlow 1.7
  • Keras 2.1.5

Mask-RCNN 代码地址:

GitHub - matterport/Mask_RCNN: Mask R-CNN for object detection and instance segmentation on Keras and TensorFlow

2.原因

        我看了一下,上述文章中NUM_CLASS=1+5,这是因为我这边是自己训练的模型,然后数据里面只有5种类别。而官方的权重是基于COCO的80类物体训练的,产生上述报错的同学直接使用了官方给出的COCO权重进行预测(没有自己用自己的数据训练)但又只想预测person这一类,因此直接把NUM_CLASS改为了1+1,但是官方的权重里面还存在存在类别的物体(除开person还有79类);这样显然是不对的,因为1个类占了4个通道,因此是(1+80)*4=324,但是现在改为了(1+1)*4=8【8!=324】,模型自然会报错!

附:COCO数据集80个类的名称

  1. person
  2. bicycle
  3. car
  4. motorbike
  5. aeroplane
  6. bus
  7. train
  8. truck
  9. boat
  10. traffic light
  11. fire hydrant
  12. stop sign
  13. parking meter
  14. bench
  15. bird
  16. cat
  17. dog
  18. horse
  19. sheep
  20. cow
  21. elephant
  22. bear
  23. zebra
  24. giraffe
  25. backpack
  26. umbrella
  27. handbag
  28. tie
  29. suitcase
  30. frisbee
  31. skis
  32. snowboard
  33. sports ball
  34. kite
  35. baseball bat
  36. baseball glove
  37. skateboard
  38. surfboard
  39. tennis racket
  40. bottle
  41. wine glass
  42. cup
  43. fork
  44. knife
  45. spoon
  46. bowl
  47. banana
  48. apple
  49. sandwich
  50. orange
  51. broccoli
  52. carrot
  53. hot dog
  54. pizza
  55. donut
  56. cake
  57. chair
  58. sofa
  59. pottedplant
  60. bed
  61. diningtable
  62. toilet
  63. tvmonitor
  64. laptop
  65. mouse
  66. remote
  67. keyboard
  68. cell phone
  69. microwave
  70. oven
  71. toaster
  72. sink
  73. refrigerator
  74. book
  75. clock
  76. vase
  77. scissors
  78. teddy bear
  79. hair drier
  80. toothbrush

3.解决方法

        因此使用官方给出的权重,而不是自己训练的,同时遇到这个问题的同学,请把这个地方改为:1+80:

        当然,我们可以验证一下:将1+80改为1+70,会出现以下错误:

        (1+70)*4正好等于284!结论正确!

都看到这里了,还不赶紧点赞评论收藏走一波?

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 20
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

任博啥时候能毕业?

有用的话,请博主喝杯咖啡吧!

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

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

打赏作者

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

抵扣说明:

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

余额充值