TensorFlowで設定されたMNISTデータを持つ畳み込みニューラルネットワーク(CNN)を訓練します。私は各画像の精度をMNISTテスト画像から計算し、10個の出力ノードの値を探します。私は(:How to get the value from each output-node during eval MNIST testdata in TensorFlow?ここではすべてのコードを参照してください):それを得るために、次のコード行を使用しTensorFlowで巨大な正と負の値を持つ配列/ベクトルにsoftmaxを適用するにはどうすればよいですか?
pred=prediction.eval(feed_dict={ x: testSet[0], y: testSet[1]})
のコード行の出力は、たとえば、このです:私は適用しようとすると
[[ -13423.92773438 -27312.79296875 20629.26367188 42987.953125
-34635.8203125 3714.84619141 -60946.6328125 106193.8828125
-20936.08789062 3940.52636719]]
次のコードで、このベクトル/アレイでtf.nn.softmax()関数:
:pred_softmax = tf.nn.softmax(pred)
print(pred_softmax_new.eval())
Iは、例えば、この出力を得ます
[[ 0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]]
しかし、私はこのような結果を探しています:
[[ 0.001 0.207 0.001 0.001 0.002 0.001 0.001 0.9723 0.001 0.001]]
私はこのコードをテスト:
test_a = tf.nn.softmax([31.0,23.0])
print(test_a.eval())
この出力を得る:
[ 9.99664664e-01 3.35350138e-04]
しかし、私は値を大きくした場合like:
test_a = tf.nn.softmax([45631.0,65423.0])
私はこの出力を得る:
[ 0. 1.]
だから私の質問は、この例のように10、出力ノードのために良い読める出力を取得する方法があります:
[[ 0.001 0.207 0.001 0.001 0.002 0.001 0.001 0.9723 0.001 0.001]]