我正在尝试使用Tensorflow工具创建神经网络。
sizeOfRow = len(data[0])
x = tensorFlow.placeholder("float", shape=[None, sizeOfRow])
y = tensorFlow.placeholder("float")
def neuralNetworkTrain(x):
prediction = neuralNetworkModel(x)
# using softmax function, normalize values to range(0,1)
cost = tensorFlow.reduce_mean(tensorFlow.nn.softmax_cross_entropy_with_logits(prediction, y))
这是网络的一部分 我有错误:
InvalidArgumentError (see above for traceback): logits and labels must be same size: logits_size=[500,2] labels_size=[1,500]
[[Node: SoftmaxCrossEntropyWithLogits = SoftmaxCrossEntropyWithLogits[T=DT_FLOAT, _device="/job:localhost/replica:0/task:0/cpu:0"](Reshape, Reshape_1)]]
有人知道出了什么问题吗?
编辑: 我也从这段代码中得到了:
for temp in range(int(len(data) / batchSize)):
ex, ey = takeNextBatch(i) # takes 500 examples
i += 1
# TO-DO : fix bug here
temp, cos = sess.run([optimizer, cost], feed_dict= {x:ex, y:ey})
这个错误 TypeError:不可用类型:' list'
答案 0 :(得分:0)
嗯,这个错误非常自我描述。
logits and labels must be same size: logits_size=[500,2] labels_size=[1,500]
因此,首先,您的标签应转换为大小500, 1
,其次,softmax_cross_entropy_with_logits期望labels
以概率分布的形式呈现(例如{{1} }})。
如果您知道您的课程是独占的(可能就是这种情况),您应该切换到使用sparse_softmax_cross_entropy_with_logits。