如何解决ValueError:数学域错误 | Python中的日志
我刚开始在 Python 中使用 math
库。此脚本的目的是展示我对 Cross-Entropy
错误函数的“处理”。
我检查了括号和运算符,用我的菜鸟眼睛看不出任何问题。
错误发生在最后一行。
out = 1.099
target = 0.7
do = 3
print('CEE = -(log(' + str(out) + ') + ((1 - ' + str(target) + ') * log(1 - ' + str(out) + ')))')
print(' = -(log(' + str(out) + ') + ((' + str(round(1 - target,dp)) + ') * log(' + str(round(1 - out,dp)) + ')))')
print(' = -(' + str(round(m.log(out),dp)) + ' + ((' + str(round(1 - target,dp)) + ') * ' + str(round(m.log(1 - out),dp)) + '))')
输出和错误:
CEE = -(log(1.099) + ((1 - 0.7) * log(1 - 1.099)))
= -(log(1.099) + ((0.3) * log(-0.099)))
Traceback (most recent call last):
File "main.py",line 3,in <module>
import Perceptron
File "/home/runner/Deep-Learning/Perceptron.py",line 125,in <module>
print(' = -(' + str(round(m.log(out),dp)) + '))')
ValueError: math domain error
解决方法
Log(),math.log()
不能接受负数。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。