我想使用tensorflow tf.image.non_max_suppression函数。
我尝试了以下两个片段:
indices = tf.image.non_max_suppression(
boxes=anchors_fit,
scores=rpn_cls_prob,
max_output_size=self.max_outputs_num,
)
indices,scores = tf.image.non_max_suppression_with_scores(
boxes=anchors_fit,
scores=rpn_cls_prob,
max_output_size=self.max_outputs_num,
)
其中anchors_fit.shape
是[36864,4]
并且rpn_cls_prob.shape
是[36864]
两个电话都加注:
ValueError: Shape must be rank 0 but is rank 1 for 'non_max_suppression_with_scores/NonMaxSuppressionV5' (op: 'NonMaxSuppressionV5') with input shapes: [36864,4], [36864], [1], [], [], [].
我该怎么办?
答案 0 :(得分:0)
self.max_outputs_num
的形状是什么?
max_output_size
:标量整数张量,表示要通过非最大抑制选择的最大盒数。
在这里,它似乎是一维数组,因为错误消息将其报告在方括号之间。 此外,它将与错误消息匹配,因为标量的秩为0,一维数组的秩为1。
因此,您可能应该将self.max_outputs_num
从数组转换为标量。