tensorflow的多分類函數用法

1.tf.nn.softmax( logits, axis=None,name=None,dim=None )

作用:用於做softmax激活,相當於執行:softmax = tf.exp(logits) / tf.reduce_sum(tf.exp(logits), axis)

參數

  • logits:一個非空的Tensor,是softmax之前的類別預測。必須是下列類型之一:half, float32,float64。
  • axis:將在其上執行維度softmax。默認值爲-1,表示最後一個維度。
  • name:操作的名稱(可選)。
  • dim:axis的已棄用的別名。

返回

一個Tensor,與logits具有相同的類型和shape。

注意:這裏得到的還只是分類的激活值,後面需要手動地與labels計算損失值。

2.tf.nn.sparse_softmax_cross_entropy_with_logits()

作用:用於做softmax激活,並與labels計算交叉損失輸出,即輸出的是損失值。因此涉及的流程包括兩步:

1)計算softmax激活:

2)與樣本標籤做交叉熵:

參數

  • labels:樣本標籤,與logits維度相同,爲[batch,class_num],這裏每一個sample的標籤可以不是one-hot的,如1,2,...,class_num
  • logits:是softmax之前的類別預測。
  • dim:類維度。默認爲-1,這是最後一個維度。
  • name:操作的名稱(可選)。

返回

做完交叉熵之後的損失向量,要計算總體損失的話,要再接一個tf.reduce_sum或者tf.reduce_mean

3.tf.nn.softmax_cross_entropy_with_logits(logits, labels, name=None)

作用:用於做softmax激活,並與labels計算交叉損失輸出,即輸出的是損失值。因此涉及的流程包括兩步:

1)計算softmax激活:

2)與樣本標籤做交叉熵:

參數

  • labels:樣本標籤,與logits維度相同,爲[batch,class_num],這裏每一個sample的標籤必須是one-hot的
  • logits:是softmax之前的類別預測。
  • dim:類維度。默認爲-1,這是最後一個維度。
  • name:操作的名稱(可選)。

返回

做完交叉熵之後的損失向量,要計算總體損失的話,要再接一個tf.reduce_sum或者tf.reduce_mean

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章