0

私は現在の事は、私は次のようにスコアで終わるということで、3以上のクラスを分類する(CNNがTensorflowで実装)ネットワークを訓練しています:(CNNの各クラスのスコアを0から1にするにはどうすればよいですか?

[ -20145.36, 150069, 578456.3 ]. 

私は0と1の間のスコアを持っていると思いますある種の確率)。まず

は、私はシグモイド関数を使用して考えたが、その後、私はそれがさえ言及されていないこの議論を見つけた:

https://www.quora.com/How-do-you-normalize-numeric-scores-to-a-0-1-range-for-comparing-different-machine-learning-techniques

あなたは0と1の間のスコアを持って行うように私に何をアドバイスしますクラスごとに?

は、最終層として、あなた

+0

tf.nn.softmax()はすなわち、すべての確率が0の間である、有効な確率分布にネットワーク出力を変換しますTensorFlowのドキュメントについては、https://www.tensorflow.org/api_docs/api_docs/python/tf/nn/softmaxを参照してください。ここでは説明があります:https://www.tensorflow.org/get_started/mnist/beginners – ml4294

答えて

3

をありがとう、あなたは常にNクラス分類スコアを取得するためにソフトマックスを使用。だから、tensorflow classification docsで述べたようにかなりのオプションがあります。

最も単純な実施例tf.nn.softmax()

softmax = exp(logits)/reduce_sum(exp(logits), dim) 

を使用することである。

In [63]: ar = np.array([ -20145.36, 150069, 578456.3 ]) 

In [64]: scores = tf.nn.softmax(ar) 

In [65]: sess = tf.InteractiveSession() 

In [66]: scores.eval() 
Out[66]: array([ 0., 0., 1.]) 
関連する問題