首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >python -日志中遇到无效值

python -日志中遇到无效值
EN

Stack Overflow用户
提问于 2016-05-28 15:14:59
回答 2查看 57.6K关注 0票数 23

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

它给了我以下警告:

代码语言:javascript
运行
复制
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)))

我不明白什么可能是无效值,或者为什么我会得到它。任何人的帮助我们都很感激。

注释:这是一个交叉熵成本函数,我在其中添加了1e-7,以避免在log中有零。ya是numpy数组,numpy被导入为np

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-28 15:21:30

您可能在log中仍然有负值,这将为nan提供实数。

ay应该表示0到1之间的概率,所以你需要检查为什么你在那里有更小/更大的值。添加1e-7表示有问题,因为np.log(0)提供了-inf,我认为这就是您想要的值。

票数 25
EN

Stack Overflow用户

发布于 2016-06-02 09:39:48

您可以使用math.log()替换numpy.log(),这可能会引发错误

代码语言:javascript
运行
复制
>>> import numpy
>>> numpy.log(0)
-inf
>>> numpy.__version__
'1.3.0'
>>> import math
>>> math.log(0)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: math domain error
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37496299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档