[英]How can I calculate cross-entropy on a sigmoid neural network binary outcome?
我目前正在從頭開始構建一個 NN,我們希望根據兩個輸入變量(X_1 和 X_2)來識別它們的 output 將是(0 或 1)。 我有 2 個隱藏層,所有神經元上都有 sigmoid 激活,但是在計算交叉熵時我卡住了。 假設在 output 層我有預測[0.50, 0.57]
但是真正的 output 是 0,所以[1, 0]
。 如何計算此二進制 output 示例的交叉熵? 有沒有人有任何建議/提示?
這是一個 function,我編寫並使用它來計算給定預測列表和真實標簽列表的交叉熵。
from math import log
# calculate the cross-entropy of predictions and true labels
def cross_entropy(y, p):
# y[i] is list of real labels
# p[i] is the probability of predicting 1
m = len(y)
sum_vals = 0
for i in range(m):
# first term is for label=1, second term is for label=0
sum_vals += float(y[i]) * log(p[i]) + (1 - float(y[i])) * log(1 - p[i])
R = -1/m * sum_vals
return R
這里標簽列表y
中的值都是 0 或 1,來自網絡的概率預測在列表p
中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.