我在尝试检测视频对象时尝试使用tf.image.non_max_suppression时遇到此错误。 Tensorflow版本是1.10.0
ValueError:形状必须为2级,但形状为3级 'non_max_suppression / NonMaxSuppressionV3'(操作:'NonMaxSuppressionV3') 输入形状:[1,500,4],[1,500],[],[],[]。
答案 0 :(得分:0)
我在tensorflow2.1中遇到了同样的错误,原因是(如错误所言)批处理尺寸不存在。
tf.image.non_max_suppression( 方块,分数,max_output_size,iou_threshold = 0.5, score_threshold = float('-inf'),name = None)
boxes形状为[num_boxes,4]的二维浮点张量。
示例:
selected_indices = tf.image.non_max_suppression(
boxes=boxes,
scores=scores,
max_output_size=7,
iou_threshold=0.5)
您应该删除张量的第一个(批量)维(上面示例中的框和得分) 如果您的批次尺寸为1,则可以使用
boxes = tf.squeeze(boxes)
scores = tf.squeeze(scores)
看来您可以在此野兽中拥有批处理尺寸: https://www.tensorflow.org/api_docs/python/tf/image/combined_non_max_suppression