我正在构建一个原始神经网络来模拟与门。损失函数是 MSE:
def mse(predicted, desired):
return np.square(np.subtract(predicted, desired)).mean()
下面有一个prediction和期望的输出(又名标签):
predicted = np.array
([[0.5000, 0.5000], # 0 AND 0
[0.4721, 0.5279], # 0 AND 1
[0.3049, 0.6951], # 1 AND 0
[0.3345, 0.6655]]) # 1 AND 1
desired = np.array
([[1, 0], # False
[1, 0], # False
[1, 0], # False
[0, 1]]) # True
每一行(在上述两个矩阵中)都表示一个案例。我想像这样将所有案例保持在一起,而不是将它们分成向量。问题是,我需要单独处理每一行。
我试图得到以下结果,但我不能:
returned output =
[0.2500, # 1st CASE ERROR
0.2786, # 2nd CASE ERROR
0.4831, # 3rd CASE ERROR
0.1118] # 4th CASE ERROR
我尝试了以下功能...
np.apply_along_axis(mse, 1, predicted, desired)
但它不起作用,因为“欲望”是作为整个矩阵传递的,而不是一次传递一行。那么,有没有办法在不改变“mse 函数”实现或循环的情况下实现这一点?