Tensorflow:" logits和标签的大小必须相同"

时间:2017-11-01 15:59:16

标签: python tensorflow deep-learning conv-neural-network

我根据研究论文建立了一个深度CNN,现在我正在尝试训练它。在我完成的所有卷积和反卷积之后,我得到了一个名为final的结果。

x = tf.placeholder(tf.float32, shape=[None, 7168])
y_ = tf.placeholder(tf.float32, shape=[None, 7168])

在我的模型中,我有一个大小为32x32x7的图像,其中每个像素都有相应的密度。模型的输出将是每个像素的标签。因此,我宣布了两个占位符,其中" x"表示输入和" y _"代表输出。

cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y_, logits=final))

现在我正在尝试训练模型,我有这条线

RequestNavigate("TabRegion", uri)

在训练模型时,我收到错误:logits和label必须大小相同:logits_size = [7168,1] labels_size = [1,7168] 标签是这样大小是有道理的,因为这是我宣布它的方式。 但是,我不明白为什么在打印出来时,为什么logits的大小为[7168,1]" final"具有形状(1,32,32,7,1)。

1 个答案:

答案 0 :(得分:1)

只需tf.reshape final

final = tf.reshape(final, [None, 7168])

虽然我不确定为什么在你拨打softmax_cross_entropy_with_logits时会自动展平......