python - 日志中遇到的值无效

hel*_*lix 10 python math numpy cross-entropy

我有以下表达式: log = np.sum(np.nan_to_num(-y*np.log(a+ 1e-7)-(1-y)*np.log(1-a+ 1e-7)))

它给了我以下警告:

RuntimeWarning: invalid value encountered in log
  log = np.sum(np.nan_to_num(-y*np.log(a+ 1e-7)-(1-y)*np.log(1-a+ 1e-7)))
Run Code Online (Sandbox Code Playgroud)

我不明白什么可能是无效值或为什么我得到它.任何和每一个帮助表示赞赏.

注意:这是一个交叉熵成本函数,我添加1e-7以避免在日志中有零.y&a是numpy数组并numpy导入为np.

Ela*_*eph 12

您可能在日志中仍然有负值,这给出了实数的nan.

a并且y应该表示介于0到1之间的概率,因此您需要检查为什么那里有更小/更大的值.添加1e-7表明有一些可疑的东西,因为np.log(0)给出-inf,我认为这是你想要的价值.