當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Tensorflow.js tf.losses.softmaxCrossEntropy()用法及代碼示例


Tensorflow.js是Google開發的開源庫,用於在瀏覽器或節點環境中運行機器學習模型和深度學習神經網絡。

Tensorflow.js tf.losses.softmaxrossEntropy() 函數計算兩個張量之間的 softmax 交叉熵損失並返回一個新的張量。

用法:

tf.losses.softmaxCrossEntropy(onehotLabels, 
    logits, weights, labelSmoothing, reduction)

參數:此函數接受五個參數(其中最後三個是可選的),如下所示:

  • onehotLabels:它是一個與預測具有相同維度的熱編碼標簽。
  • logits:它是預測的輸出。
  • weights:這些是秩為 0 或 1 的那些張量,它們必須是可廣泛鑄造的以變形。
  • labelSmoothing:如果此參數的值大於 0,則會平滑標簽。
  • reduction:這是適用於損失的減少類型。它必須是Reduction 類型。

注意:權重、標簽平滑和減少等參數是可選的。



返回值:它返回一個在兩個張量之間具有 softmax cross-entropy 損失的張量。

Javascript


// Importing the tensorflow.Js lbrary
import * as tf from "@tensorflow/tfjs"
  
// Creating onehotLabels tensor
const a  = tf.tensor2d([[1, 4, 5], [5, 5, 7]]);
  
// Creating logits tensor
const b    = tf.tensor2d([[3, 2, 5], [3, 2, 7]])
  
// Computing soft max cross entropy distance
softmax_cross_entropy = tf.losses.softmaxCrossEntropy(a, b)
softmax_cross_entropy.print();

輸出:

Tensor
   30.55956268310547

範例2:在這個例子中,我們傳遞了一個可選參數,即標簽平滑。如果大於 0,則平滑標簽。

Javascript


// Importing the tensorflow.Js lbrary
import * as tf from "@tensorflow/tfjs"
  
// const tf = require("@tensorflow/tfjs")
  
// Creating labels tensor
const a = tf.tensor2d([[1,2,3,4,5], [7,8,9,10,11]])
  
// Creating predictions tensor
const b = tf.tensor2d([[6,735,8,59,10], [45,34,322,2,3]])
  
const c = tf.tensor2d([[4,34,34,2,4],[65,34,3,2,3]])
  
// Computing cross entropy  with an option parameter number
softmax_cross_entropy = tf.losses.softmaxCrossEntropy(a, b, 5)
softmax_cross_entropy.print();

輸出:

Tensor
    50477.5

參考: https://js.tensorflow.org/api/latest/#losses.softmaxCrossEntropy

相關用法


注:本文由純淨天空篩選整理自kapilm180265ca大神的英文原創作品 Tensorflow.js tf.losses.softmaxCrossEntropy() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。