2017-02-18 66 views
0

标准化预测值的,简单的前馈DNN相关的.csv文件可以在这里https://github.com/jhsmith12345/tensorflow/blob/normalize_prediction/tf_from_csv.py如何tensorflow

这段代码

classification = prediction.eval(feed_dict={x: [[9,3]]}) 
print (classification) 

正在输出

[[ -12.2412138 -17.24327469 ]] 

我发现我预计符合标签的预测是1或0.类似于

[[ 0 1 ]] 

我相信我的预测值没有通过softmax标准化,但不知道如何进行。任何帮助表示赞赏!另外,我非常乐意在这里发布完整的代码,但不想混淆帖子。谢谢!

回答

1

让我清楚,在你的代码

prediction = neural_network_model(x) 
prediction.eval(feed_dict={x: [[9,3]]}) 
# output is [[ -12.2412138 -17.24327469 ]] 

,你迷惑为什么范围不是0〜1,对不对?
因为SOFTMAX不会对预测
您使用tf.nn.softmax_cross_entropy_with_logits
我知道申请,该功能适用​​于添加Softmax计算prediction交叉熵之前
但它不会改变的prediction

的价值我想你可以 做SOFTMAX然后计算交叉熵,最后直接打印prediction(这意味着不能使用tf.nn.softmax_cross_entropy_with_logits

,或者改变什么,但打印之前不要使用SoftMax 10

+0

谢谢,我试过了“”“分类= tf.nn.softmax(prediction.eval(feed_dict = {x:[[9,3]])))”“”带有产生的“”“Tensor(”Softmax :0“,形状=(1,2),dtype = float32)”“”我不认为这是我正在寻找,但不知道。 –

+0

我认为它会是'result = tf.nn.softmax(预测)'然后'print result.eval(feed_dict = {x:[[9,3]]})' – xxi

+0

是的,这是有效的。谢谢!!! –