"logits and labels must be same size: logits_size=[10,2] labels_size=[10,11]"



我正在构建一个机器学习模型,该模型使用肿瘤数据对其他肿瘤进行分类。但是,当我申报成本时似乎存在问题。

我不明白为什么这是一个问题,因为我使用 TensorFlow 提供的 MNIST 数据集运行了相同的代码,并且它工作正常。在这种情况下,我将n_classes设置为 10,batch_size设置为 100,x = tf.placeholder('float', [None, 784])

您已将类数指定为 2:

n_classes = 2

因此,您的输出图层是形状 [10, 2] ,当您使用您指定的一批 10 时。但是您为每个样本传递 11 个标签,为您提供的标签形状为 [10, 11] .您可能将数据作为标签传入sess.run([...], feed_dict={...})。您未指定标签的形状:

y = tf.placeholder('float')

该行应为:

y = tf.placeholder('float', shape=[None, n_classes])

如果您这样做,我希望您的错误将转移到您的sess.run调用中,并且它会指出您为标签传递了错误的数据。


此外,作为旁注,对于二元预测器,如果您在输出上使用单个神经元,您将获得稍微好一点的结果。虽然它可以将 2 个神经元用于二进制类,但它的性能通常比单个 [0,1] 输出类稍差。

最新更新