【问题标题】:logits and labels must be broadcastable: logits_size=[82944,2] labels_size=[90000,2]logits 和标签必须是可广播的:logits_size=[82944,2] labels_size=[90000,2]
【发布时间】:2018-08-29 12:54:09
【问题描述】:

我正在使用带有 MobileUNet 模型的 Tensorflow 进行视网膜血管语义分割的项目,我收到了这个错误:

    InvalidArgumentError (see above for traceback): logits and labels must 
    be broadcastable: logits_size=[82944,2] labels_size=[90000,2] 
[[Node: softmax_cross_entropy_with_logits_sg = SoftmaxCrossEntropyWithLogits[T=DT_FLOAT, 
_device="/job:localhost/replica:0/task:0/device:CPU:0"](softmax_cross_entropy_with_logits_sg/Reshape,
softmax_cross_entropy_with_logits_sg/Reshape_1)]]

这里我的代码如下:

network=network = build_mobile_unet(net_input, preset_model = args.model, num_classes=num_classes) 
net_input = tf.placeholder(tf.float32,shape=[None,None,None,3]) 
net_output = tf.placeholder(tf.float32,shape=[None,None,None,num_classes])
losses = tf.nn.softmax_cross_entropy_with_logits(logits=network, labels=net_output) 
cost = tf.reduce_mean(losses)

opt = tf.train.AdamOptimizer(0.001).minimize(cost)

init = tf.initialize_all_variables() _,current=sess.run([opt,cost],feed_dict={net_input:input_image_batch, net_output:segmented_image_batch})

输入图像是300x300,在RGB 颜色空间中。输出是与输入大小相同的二值图像。

有人可以帮我吗?

【问题讨论】:

  • tf.nn.softmax_cross_entropy_with_logits函数中,需要为每个训练点提供一个N元素标签。如果每批包含可分为 N 类的 K 个点,则必须将 labels 参数设置为大小为 [K, N] 的张量。
  • 是的,我只是为每个训练点提供一个标签,这是一个大小为 300*300 的二进制图像,我遇到了这个问题。

标签: windows python-3.x tensorflow


【解决方案1】:

我们回答了这个也与架构有关的问题 在以下链接中理解这一点 Input to reshape is a tensor with 37632 values, but the requested shape has 150528 如果您遇到任何问题,请告诉我们

【讨论】:

    【解决方案2】:

    我也遇到了同样的问题。当我们使用 label_size 超过数据集中的类数时,就会出现这种情况。

    在最后一个全连接层(密集)中,我使用了 46,但在我的数据集中只有 38 个类。所以当我使用 38 而不是 46 时,问题解决了。

    【讨论】:

      猜你喜欢
      • 2021-12-29
      • 2022-01-23
      • 2021-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-30
      • 1970-01-01
      • 2021-12-12
      相关资源
      最近更新 更多