【发布时间】: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