使用 keras 我必須訓(xùn)練一個(gè)模型來預(yù)測圖像屬于 0 類還是 1 類。我對二元和 categorical_cross_entropy 感到困惑。我已經(jīng)搜索過了,但我仍然感到困惑。有人提到我們只在嘗試預(yù)測多類時(shí)使用分類交叉熵,我們應(yīng)該為此使用單熱編碼器向量。所以這意味著當(dāng)我們要使用 binary_cross_entrpoy 進(jìn)行訓(xùn)練時(shí),我們不需要任何單熱編碼的向量標(biāo)簽。有人建議將 one_hot 向量表示為 [0. 1.](如果類是 1)或 [1. 0.](如果類為 0)對于 binary_cross_entropy。我正在使用一個(gè)帶有分類交叉熵的熱編碼器 [0 1] 或 [1 0]。我的最后一層是model.add(Dense(num_classes, activation='softmax')) # Compile model model.compile(loss='categorical_crossentropy', optimizer='adadelta', metrics=['accuracy'])
1 回答

慕田峪4524236
TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超5個(gè)贊
對于2 個(gè)類,它們在數(shù)學(xué)上相同,因此是二進(jìn)制的。換句話說,2 類分類交叉熵與單輸出二元交叉熵相同。舉一個(gè)更具體的例子,這些是相同的:
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', ...)
# is the same as
model.add(Dense(2, activation='softmax'))
model.compile(loss='categorical_crossentropy', ...)
使用哪一種?為了避免單熱編碼分類輸出,如果您只有 2 個(gè)類,從編碼的角度來看,使用二進(jìn)制交叉熵更容易。二進(jìn)制情況可能在計(jì)算上更有效,具體取決于實(shí)現(xiàn)。
添加回答
舉報(bào)
0/150
提交
取消