我正在建立一个机器学习模型,该模型使用肿瘤数据对其他肿瘤进行分类。但是,当我申报成本时,似乎存在问题。
我不明白为什么这是一个问题,因为我使用TensorFlow提供的MNIST数据集运行这个相同的精确代码,并且它工作正常。在这种情况下,我将n_classes设置为10,batch_size设置为100,x = tf.placeholder('float', [None, 784])
。
答案 0 :(得分:2)
您已将类数指定为2:
n_classes = 2
因此,当您使用指定的10批时,您的输出图层将为[10, 2]
形状。但是,您每个样本都会传递11个标签,标签形状为[10, 11]
。您可能会将数据作为sess.run([...], feed_dict={...})
标签传入。您没有指定标签的形状:
y = tf.placeholder('float')
该行应该是:
y = tf.placeholder('float', shape=[None, n_classes])
如果您这样做,我希望您的错误会转移到sess.run
来电,并指出您为标签传递了错误的数据。
另外,作为旁注,对于二进制预测器,如果在输出上使用单个神经元,则会得到稍好的结果。虽然它可以使用2个神经元作为二进制类,但它通常比单个[0,1]输出类略差。