ValueError:Python中的数学域错误| log()

2024-06-16 11:03:47 发布

您现在位置: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)) + ' + ((' + str(round(1 - target, dp)) + ') * ' + str(round(m.log(1 - out), dp)) + '))')
ValueError: math domain error

Tags: inpylogtarget错误linemathout