MASK RCNN TCDD Debug :ValueError: Cannot convert an unknown Dimension to a Tensor: ?

报错原因:

在TensorFlow中,当尝试将一个未知维度(unknown dimension)转换为张量(Tensor)时,会出现ValueError: Cannot convert an unknown Dimension to a Tensor: ?的错误。

未知维度是指在构建计算图时,某些维度的大小是未知的,即在运行时才能确定。这可能是因为数据的维度在运行时才能确定,或者是因为在构建计算图时使用了动态形状(dynamic shape)。(具体见https://www.oikita.com/article/1235611#

解决办法:
在model.py 第703行修改代码
原始代码:

# Class IDs per ROI

class_ids = tf.argmax(probs, axis=1, output_type=tf.int32)

# Class probability of the top class of each ROI

indices = tf.stack([tf.range(probs.shape[0]), class_ids], axis=1)
class_scores = tf.gather_nd(probs, indices)

修改为:

    # Class IDs per ROI

    class_ids = tf.argmax(probs, axis=1, output_type=tf.int32)

    # 获取动态的batch size
    batch_size = tf.shape(probs)[0]

    # Class probability of the top class of each ROI

    indices = tf.stack([tf.range(batch_size), class_ids], axis=1)
    class_scores = tf.gather_nd(probs, indices)

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值