在TensorFlow 中,術語「logits」指的是幾層的未縮放線性相對尺度。它們通常在機器學習模型中用於表示應用 softmax 函數之前的預概率激活。
Softmax 和softmax_cross_entropy_with_logits 之間的差異
Softmax (tf.nn.softmax) 將softmax 函數應用於輸入量數機率(logits) 轉換為0 到1 之間的機率。輸出保持與輸入相同的形狀。
softmax_cross_entropy_with_logits (tf.nn.softmax_cross_entropy_with_logits) 將 softmax 步驟和交叉熵損失的計算結合在一個操作中。它提供了一種數學上更合理的方法來優化 softmax 層的交叉熵損失。此函數的輸出形狀小於輸入,並建立一個對元素求和的總和指標。
範例
考慮以下範例:
<code class="python">import tensorflow as tf # Create logits logits = tf.constant([[0.1, 0.3, 0.5, 0.9]]) # Apply softmax softmax_output = tf.nn.softmax(logits) # Compute cross-entropy loss and softmax loss = tf.nn.softmax_cross_entropy_with_logits(logits, tf.one_hot([0], 4)) print(softmax_output) # [[ 0.16838508 0.205666 0.25120102 0.37474789]] print(loss) # [[0.69043917]]</code>
softmax_output 表示每個類別的機率,而損失值表示logits 和提供的標籤之間的交叉熵損失。
何時使用 softmax_cross_entropy_with_logits
建議對模型輸出進行 softmax 處理的最佳化場景使用 tf.nn.softmax_cross_entropy_with_logits。此功能可確保數值穩定性並無需手動調整。
以上是## TensorFlow 中 Softmax 和 softmax_cross_entropy_with_logits 有什麼不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!