ホームページ >バックエンド開発 >Python チュートリアル >## TensorFlow における Softmax と Softmax_cross_entropy_with_logits の違いは何ですか?
TensorFlow では、「ロジット」という用語は、線形相対スケールを表す、先行層のスケールされていない出力を指します。これらは、ソフトマックス関数を適用する前の事前確率的アクティベーションを表すために、機械学習モデルで一般的に使用されます。 > (tf.nn.softmax) は、ソフトマックス関数を入力テンソルに適用し、対数確率 (ロジット) を 0 と 1 の間の確率に変換します。出力は入力と同じ形状を維持します。
softmax_cross_entropy_with_logits (tf.nn.softmax_cross_entropy_with_logits) は、ソフトマックス ステップとクロスエントロピー損失の計算を 1 つの操作で結合します。これは、ソフトマックス層を使用してクロスエントロピー損失を最適化するための、より数学的に適切なアプローチを提供します。この関数の出力形状は入力より小さく、要素全体を合計するサマリー メトリックを作成します。
例
次の例を考えてみましょう:
softmax_output は各クラスの確率を表し、損失値はロジットと提供されたラベル間のクロスエントロピー損失を表します。softmax_cross_entropy_with_logits を使用する場合
モデルの出力がソフトマックス化される最適化シナリオには、 tf.nn.softmax_cross_entropy_with_logits を使用することをお勧めします。この機能により数値の安定性が保証され、手動調整の必要がなくなります。<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>
以上が## TensorFlow における Softmax と Softmax_cross_entropy_with_logits の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。