tensorflow - 调用 tf.image.non_max_suppression 时获取 ValueError
问题描述
我想使用 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], [], [], [].
我应该怎么办?
解决方案
是什么形状的self.max_outputs_num
?
从文档中:
max_output_size
:一个标量整数张量,表示非最大抑制要选择的最大框数。
在这里,它似乎是一个一维数组,因为错误消息在括号中报告了它。此外,它会匹配错误消息,因为标量的秩为 0,而一维数组的秩为 1。
因此,您可能应该将您self.max_outputs_num
的数组从数组转换为标量。
推荐阅读
- javascript - 如何将变量添加到值查询?火力基地
- c++ - 如何通过重载 | 链接和序列化函数 操作员
- android - 为什么 Google Flutter 中底部导航栏中的类似项目的文本大小不同?
- python - 如何使用 csv 文件向个人发送电子邮件?
- java - 程序终止后,返回到主代码的开始处或其他地方
- javascript - 如何使用正则表达式删除字符串中所有出现的重复字母。在 JS 中
- laravel - Laravel Passport 覆盖主键不起作用
- ios - SwiftUI:在用户滑动以关闭时显示警报
- scala - 将 Type1:EitherT[Future, String, Int] 转换为 Type2:EitherT[Future, String, Option[Int]] 而 Type1 中的所有 Left 在 Type2 中变为 Right(None)
- php - 带有参数日期格式的执行存储过程出错