簡體   English   中英

Tensorflow 和 Keras:sparse_categorical_crossentropy

[英]Tensorflow with Keras: sparse_categorical_crossentropy

我是 StackOverflow 的新手,最近我也開始使用 Tensorflow 和 Keras。目前我正在使用 LSTM 單元開發架構。 我的問題在這里被部分討論:

keras.losses.sparse_categorical_crossentropy 的實現是什么樣的?

但是,在我的 model 中,我有一個大小為 (batch_size, seq_length, vocabulary_dimension) 的預測張量y_hat和大小為 (batch_size, seq_length) 的真實標簽y

我想知道當我調用loss = sparse_categorical_crossentropy(y,y_hat)時如何計算損失值:sparse_crossentropy function 如何計算從兩個不同維度的張量開始的損失值?

交叉熵是一種比較兩個概率分布的方法。 也就是說,它說明了兩者有多么不同或相似。 它是在兩個 arrays 或連續分布上定義的數學 function,如此處所示

'sparse_categorical_crossentropy' 中的 'sparse' 部分表示 y_true 值每行必須有一個值,例如[0, 2, ...]表示哪個結果(類別)是正確的選擇。 然后 model 輸出的y_pred必須類似於[[.99, .01, 0], [.01, .5, .49], ...] 此處,model 預測第 0 個類別在第一行中的概率為 .99。 這非常接近真實值,即[1,0,0] 然后sparse_categorical_crossentropy將使用上述公式計算具有兩個分布的單個數字並返回該數字。

如果您使用“categorical_crossentropy”,它會期望y_true是一個單熱編碼向量,例如[[0,0,1], [0,1,0], ...]

如果您想深入了解細節,可以查看源代碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM