簡體   English   中英

自定義 keras 損失與 'sparse_softmax_cross_entropy_with_logits' - 排名不匹配

[英]Custom keras loss with 'sparse_softmax_cross_entropy_with_logits' - Rank mismatch

我一直在使用 tensorflow 損失( sparse_softmax_cross_entropy_with_logits )編寫 keras model 並且我遇到了這個問題。 對於這個 model,真實值應該是一個形狀為 (batch_size) 的張量,而 model 的 output 將具有形狀 (batch_size)。 我已經驗證了 model 的 output 的形狀(?,num_classes),並且我已經為真實值創建了一個目標張量,但這似乎並沒有解決問題。 有人對如何解決它有任何想法嗎? 有什么我想念的嗎? 下面是相關代碼。

def tf_loss(y_true, y_pred):
    return tf.nn.sparse_softmax_cross_entropy_with_logits(labels=y_true, logits=y_pred)

pred = tf.placeholder(dtype=tf.int32, shape=[None])
model.compile(optimizer='adam', loss=tf_loss, target_tensor=pred)

當我查看損失 function 內部時,我發現 y_true 的形狀為 (?, num_classes) 而 y_pred 的形狀為 (?, ?)。

好吧,我非常尷尬,但這個錯誤只是一個錯字。 'target_tensor' 而不是 'target_tensor'。 如果不是這樣,另一種選擇就是簡單地修改損失 function 中的張量。

暫無
暫無

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

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