UnboundLocalError:赋值前引用局部变量“under”
import numpy as np def mae(y, y_hat): if np.where(y_hat >= y): over = np.mean(0.5*(np.abs(y - y_hat))) elif np.where(y_hat < y): under = np.mean(np.abs(y - y_hat)) return (over + under) / 2
我曾尝试将“under”设置为global,但也不起作用。这可能是一个简单的修复,虽然我更喜欢R用户。
if 和 elif np.mean(over,under) 任何一个 under over 不会被定义。因此,您需要初始化 在下面 结束 使用初始值或对其进行修改,因为对于当前逻辑,将只定义其中一个变量。
if
elif
np.mean(over,under)
under
over
在下面
结束
所以你把它改成了 (over + under) / 2
(over + under) / 2
import numpy as np def mae(y, y_hat): under = 0 over = 0 if np.where(y_hat >= y): over = np.mean(0.5*(np.abs(y - y_hat))) elif np.where(y_hat < y): under = np.mean(np.abs(y - y_hat)) return (over + under) / 2
这样,它们在不使用时根本不会影响输出。