1

我正在使用 softmax 函数从神经网络获取输出,并在计算误差时获取最小值作为输出。

但是,如果假设 [0,0,0] 的输出相同,则 softmax 函数的输出为 [0.33,0.33,0.33]

因此,当从中选择最小值时,

output = softmax(np.dot(hs,HO))
tarminout = np.subtract(target,output)
mine = min(tarminout)
mine = 0.5 * np.power(mine,2)
finalError += mine

它给出了以下错误,因为有多个相等的最小值,

Traceback(最近一次调用最后一次):
文件“ann.py”,第 234 行,在模块中

learn()
文件“ann.py”,第 97 行,在学习中

我的 = min(tarminout)

ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()

当有超过 1 个相等的最小值时,我怎样才能通过只选择其中一个来通过它?

谢谢

4

1 回答 1

1

答案隐藏在上面的评论中:您的错误可能是将多维 ndarray 传递给不理解它们的标准 python min() 的结果。

方式#1:调用 np.min 而不是 min

方式#2(不推荐):展平你的阵列,min(tarminout.ravel())

首选方式 #1,在 numpy 数组上使用 numpy 运算符

于 2016-08-18T15:33:40.127 回答