2017-07-20 6 views
0

Tensorflowのsoftmax関数をテストしていましたが、私が得た答えが正しいとは限りません。TensorflowのSoftmax関数が正解を表示しない

したがって、以下のコードでは、khは[5,4]行列です。 softmaxkhは、khのsoftmaxマトリックスである必要があります。ただし、計算を行わなくても、特定の列または行の最大数値がkhであると、必ずしも最大数値がsoftmaxkhに対応しているとは限りません。

たとえば、最後の列の中央の行の '65'は列と行の両方で最も高い番号ですが、softmaxkhの行と列の両方で最も高い番号を表しません。なぜならランダムジェネレータ等random_uniformdraws different numbers every time you call itある

[[ 55. 49. 48. 30.] 
    [ 21. 39. 20. 11.] 
    [ 40. 33. 58. 65.] 
    [ 55. 19. 12. 24.] 
    [ 17. 8. 14. 0.]] 

print(sess.run(softmaxkh)) 

戻り

[[ 1.42468502e-21 9.99663830e-01 8.31249167e-07 3.35349847e-04] 
    [ 3.53262839e-24 1.56288218e-18 1.00000000e+00 3.13913289e-17] 
    [ 6.10305051e-06 6.69280719e-03 9.93300676e-01 3.03852971e-07] 
    [ 2.86251861e-20 2.31952296e-16 8.75651089e-27 1.00000000e+00] 
    [ 5.74948687e-19 2.61026280e-23 9.99993801e-01 6.14417422e-06]] 

答えて

1

を返し

import tensorflow as tf 

kh = tf.random_uniform(
    shape= [5,4], 
    maxval=67, 
    dtype=tf.int32, 
    seed=None, 
    name=None 
) 

sess = tf.InteractiveSession() 

kh = tf.cast(kh, tf.float32) 

softmaxkh = tf.nn.softmax(kh) 


print(sess.run(kh)) 

あなたは異なるグラフの実行全体にランダムに生成された値を再利用するVariableに結果を格納する必要があります。

import tensorflow as tf 

kh = tf.random_uniform(
    shape= [5,4], 
    maxval=67, 
    dtype=tf.int32, 
    seed=None, 
    name=None 
) 

kh = tf.cast(kh, tf.float32) 
kh = tf.Variable(kh) 

sess = tf.InteractiveSession() 
tf.global_variables_initializer().run() 

softmaxkh = tf.nn.softmax(kh) 

# run graph 
print(sess.run(kh)) 
# run graph again 
print(sess.run(softmaxkh)) 
これらの値は一度しかなく、複数の場所で使用されている場合

Atlernativelyは、あなたが呼び出しグラフを実行することができます一度にすべての望ましい出力。

import tensorflow as tf 

kh = tf.random_uniform(
    shape= [5,4], 
    maxval=67, 
    dtype=tf.int32, 
    seed=None, 
    name=None 
) 

kh = tf.cast(kh, tf.float32) 

sess = tf.InteractiveSession() 

softmaxkh = tf.nn.softmax(kh) 

# produces consistent output values 
print(sess.run([kh, softmaxkh)) 
# also produces consistent values, but different from above 
print(sess.run([kh, softmaxkh)) 
関連する問題