2017-11-01 8 views
0

私はテンソルフローが新しく、単純なフィードフォワードニューラルネットの構築を練習しており、いくつかの奇妙なことが起こっています。精度計算におけるTensorflowのバグ

バイナリラベルを予測しようとしています(つまり、0または1のいずれかです)。だから私は次のコードを使用しています。

私はこれを実行し、最後のprint文で一時停止します。私はpredictions = sess.run(prediction, feed_dict={X: batch_x})を実行し、いくつかの予測の配列を取得します。私はpredictions = [1 if x[1] > x[0] else 0 for x in predictions ]tru_labels = [1 if x[1] > x[0] else 0 for x in batch_y]を実行し、これらの2つが異なる回数を数えます。私は6を得る。私は14.0/20をする。私の正確さは0.7になる。それから私はsess.run(accuracy, feed_dict={X: batch_x, Y: batch_y})を実行し、私は0.0を取得します。どうして?ここで何が起こっているのですか?

はまた、これはprint文の出力である:私の損失ははるかに大きく下がっていない理由

Step 1, Minibatch Loss= 21.6776, Training Accuracy= 0.500 
Step 100, Minibatch Loss= 0.4614, Training Accuracy= 0.000 
Step 200, Minibatch Loss= 0.5002, Training Accuracy= 0.500 
Step 300, Minibatch Loss= 0.5157, Training Accuracy= 0.000 
Step 400, Minibatch Loss= 0.5495, Training Accuracy= 0.000 
Step 500, Minibatch Loss= 0.5910, Training Accuracy= 0.000 
Step 600, Minibatch Loss= 0.5321, Training Accuracy= 0.000 
Step 700, Minibatch Loss= 0.5180, Training Accuracy= 0.500 
Step 800, Minibatch Loss= 0.5418, Training Accuracy= 0.000 
Step 900, Minibatch Loss= 0.5050, Training Accuracy= 0.000 
Step 1000, Minibatch Loss= 0.5108, Training Accuracy= 0.000 
Step 1100, Minibatch Loss= 0.4737, Training Accuracy= 0.000 
Step 1200, Minibatch Loss= 0.5985, Training Accuracy= 0.000 
Step 1300, Minibatch Loss= 0.2716, Training Accuracy= 0.000 
Step 1400, Minibatch Loss= 0.5839, Training Accuracy= 0.000 
Step 1500, Minibatch Loss= 0.6726, Training Accuracy= 0.000 
Step 1600, Minibatch Loss= 17.2756, Training Accuracy= 1.000 
Step 1700, Minibatch Loss= 0.8098, Training Accuracy= 0.000 
Step 1800, Minibatch Loss= 0.5322, Training Accuracy= 0.000 
Step 1900, Minibatch Loss= 0.5866, Training Accuracy= 0.000 
Step 2000, Minibatch Loss= 0.5407, Training Accuracy= 0.000 
Step 2100, Minibatch Loss= 0.6749, Training Accuracy= 0.000 
Step 2200, Minibatch Loss= 0.5363, Training Accuracy= 0.000 
Step 2300, Minibatch Loss= 0.5968, Training Accuracy= 0.000 
Step 2400, Minibatch Loss= 0.4667, Training Accuracy= 0.000 
Step 2500, Minibatch Loss= 0.5713, Training Accuracy= 0.000 
Step 2600, Minibatch Loss= 0.6382, Training Accuracy= 0.000 
Step 2700, Minibatch Loss= 0.6168, Training Accuracy= 0.000 
Step 2800, Minibatch Loss= 0.6685, Training Accuracy= 0.000 
Step 2900, Minibatch Loss= 0.4987, Training Accuracy= 0.000 
Step 3000, Minibatch Loss= 0.3820, Training Accuracy= 0.000 
Step 3100, Minibatch Loss= 0.4556, Training Accuracy= 0.000 
Step 3200, Minibatch Loss= 0.4292, Training Accuracy= 0.000 
Step 3300, Minibatch Loss= 0.6192, Training Accuracy= 0.000 
Step 3400, Minibatch Loss= 0.6137, Training Accuracy= 0.000 
Step 3500, Minibatch Loss= 0.5665, Training Accuracy= 0.000 
Step 3600, Minibatch Loss= 0.2847, Training Accuracy= 0.000 
Step 3700, Minibatch Loss= 0.3382, Training Accuracy= 0.000 
Step 3800, Minibatch Loss= 0.5396, Training Accuracy= 0.000 
Step 3900, Minibatch Loss= 0.4069, Training Accuracy= 0.000 
Step 4000, Minibatch Loss= 0.6689, Training Accuracy= 0.000 
Step 4100, Minibatch Loss= 0.4920, Training Accuracy= 0.000 
Step 4200, Minibatch Loss= 0.5750, Training Accuracy= 0.000 
Step 4300, Minibatch Loss= 0.4918, Training Accuracy= 0.000 
Step 4400, Minibatch Loss= 0.4784, Training Accuracy= 0.000 
Step 4500, Minibatch Loss= 0.6457, Training Accuracy= 0.000 
Step 4600, Minibatch Loss= 0.4326, Training Accuracy= 0.000 
Step 4700, Minibatch Loss= 0.4557, Training Accuracy= 0.000 
Step 4800, Minibatch Loss= 0.3729, Training Accuracy= 0.000 
Step 4900, Minibatch Loss= 0.5595, Training Accuracy= 0.000 
Step 5000, Minibatch Loss= 0.4460, Training Accuracy= 0.000 
Step 5100, Minibatch Loss= 0.5430, Training Accuracy= 0.500 
Step 5200, Minibatch Loss= 0.3638, Training Accuracy= 0.000 
Step 5300, Minibatch Loss= 0.4524, Training Accuracy= 0.000 
Step 5400, Minibatch Loss= 0.7159, Training Accuracy= 0.000 
Step 5500, Minibatch Loss= 4.7344, Training Accuracy= 0.000 
Step 5600, Minibatch Loss= 0.5006, Training Accuracy= 0.000 
Step 5700, Minibatch Loss= 0.5062, Training Accuracy= 0.000 
Step 5800, Minibatch Loss= 0.4394, Training Accuracy= 0.000 
Step 5900, Minibatch Loss= 0.5160, Training Accuracy= 0.000 
Step 6000, Minibatch Loss= 0.3884, Training Accuracy= 0.000 
Step 6100, Minibatch Loss= 0.5501, Training Accuracy= 0.000 
Step 6200, Minibatch Loss= 0.4486, Training Accuracy= 0.000 
Step 6300, Minibatch Loss= 0.4165, Training Accuracy= 0.000 
Step 6400, Minibatch Loss= 0.4924, Training Accuracy= 0.000 
Step 6500, Minibatch Loss= 0.4942, Training Accuracy= 0.000 
Step 6600, Minibatch Loss= 0.4783, Training Accuracy= 0.000 
Step 6700, Minibatch Loss= 0.3772, Training Accuracy= 0.000 
Step 6800, Minibatch Loss= 0.7205, Training Accuracy= 0.000 
Step 6900, Minibatch Loss= 0.5531, Training Accuracy= 0.000 
Step 7000, Minibatch Loss= 0.5829, Training Accuracy= 0.000 
Step 7100, Minibatch Loss= 0.6349, Training Accuracy= 0.000 
Step 7200, Minibatch Loss= 0.5420, Training Accuracy= 0.000 
Step 7300, Minibatch Loss= 0.3575, Training Accuracy= 0.500 
Step 7400, Minibatch Loss= 0.4242, Training Accuracy= 0.000 
Step 7500, Minibatch Loss= 0.5211, Training Accuracy= 0.500 
Step 7600, Minibatch Loss= 0.3020, Training Accuracy= 0.000 
Step 7700, Minibatch Loss= 0.4305, Training Accuracy= 0.500 
Step 7800, Minibatch Loss= 0.5304, Training Accuracy= 0.000 
Step 7900, Minibatch Loss= 0.5394, Training Accuracy= 0.000 
Step 8000, Minibatch Loss= 0.5554, Training Accuracy= 0.000 
Step 8100, Minibatch Loss= 0.4356, Training Accuracy= 0.000 
Step 8200, Minibatch Loss= 0.3782, Training Accuracy= 0.000 
Step 8300, Minibatch Loss= 0.3854, Training Accuracy= 0.000 
Step 8400, Minibatch Loss= 0.6727, Training Accuracy= 0.000 
Step 8500, Minibatch Loss= 0.5484, Training Accuracy= 0.000 
Step 8600, Minibatch Loss= 0.6856, Training Accuracy= 0.000 
Step 8700, Minibatch Loss= 4.6333, Training Accuracy= 0.500 
Step 8800, Minibatch Loss= 1.7541, Training Accuracy= 0.500 
Step 8900, Minibatch Loss= 0.3309, Training Accuracy= 0.000 
Step 9000, Minibatch Loss= 0.4506, Training Accuracy= 0.000 
Step 9100, Minibatch Loss= 0.7060, Training Accuracy= 0.000 
Step 9200, Minibatch Loss= 0.7779, Training Accuracy= 0.500 
Step 9300, Minibatch Loss= 0.5186, Training Accuracy= 0.000 
Step 9400, Minibatch Loss= 0.5144, Training Accuracy= 0.000 
Step 9500, Minibatch Loss= 0.6899, Training Accuracy= 0.000 
Step 9600, Minibatch Loss= 0.4099, Training Accuracy= 0.000 
Step 9700, Minibatch Loss= 0.5568, Training Accuracy= 0.000 
Step 9800, Minibatch Loss= 0.4362, Training Accuracy= 0.000 
Step 9900, Minibatch Loss= 0.4632, Training Accuracy= 0.500 
Step 10000, Minibatch Loss= 0.5170, Training Accuracy= 0.000 
Optimization Finished! 

誰もが知っていますか?私はランダムな森林で、はるかに良い損失を得るのはかなり簡単だと知っています。

答えて

1

最大値を求める軸を確認してください。おそらく、それがなければならない:

correct_pred = tf.equal(tf.argmax(予測、軸= 1)、tf.argmax(Y軸= 1))

関連する問題