簡體   English   中英

Tensorflow:單個圖像上不平衡類的加權sparse_softmax_cross_entropy

[英]Tensorflow: Weighted sparse_softmax_cross_entropy for inbalanced classes across a single image

我正在執行二進制語義分割任務,其中一類在任何輸入圖像上的分布都非常小,因此僅標記了幾個像素。 當使用sparse_softmax_cross_entropy時,忽略此類時,很容易減少總體錯誤。 現在,我正在尋找一種通過加權系數加權類別的方法,該系數可以比其他類別更高地懲罰特定類別的誤分類。

損失函數的文檔指出:

權重是損失的系數。 如果提供了標量,則損耗將簡單地按給定值縮放。 如果權重是形狀為[batch_size]的張量,則損失權重將應用於每個相應的樣本。

如果我正確理解這一點,則表示批次中的特定樣品的加權與其他樣品相比有所不同。 但這實際上不是我想要的。 有誰知道如何實現此損失函數的加權版本,其中權重確定特定類而不是樣本的重要性?

要回答我自己的問題:

U-Net論文的作者使用預先計算的權重圖來處理不平衡的類。

蘇黎世聯邦理工學院天文研究所提供了一個基於Tensorflow的U-Net軟件包 ,其中包含Softmax函數的加權版本(不是稀疏的,但它們首先將其標簽扁平化並進行logit):

class_weights = tf.constant(np.array(class_weights, dtype=np.float32))
weight_map = tf.multiply(flat_labels, class_weights)
weight_map = tf.reduce_sum(weight_map, axis=1)
loss_map = tf.nn.softmax_cross_entropy_with_logits_v2(logits=flat_logits, labels=flat_labels)
weighted_loss = tf.multiply(loss_map, weight_map)    
loss = tf.reduce_mean(weighted_loss)

暫無
暫無

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

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