python - Numpy Softmax - 具有多个元素的数组的真值是不明确的。使用 a.any() 或 a.all()

标签 python arrays numpy softmax

我使用 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 (most recent call last):
File "ann.py", line 234, in module

learn()
File "ann.py", line 97, in learn

mine = min(tarminout)

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

当存在超过 1 个相等的最小值时,如何通过仅选择其中一个来通过此操作?

谢谢

最佳答案

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

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

方法#2(不推荐):展平数组,min(tarminout.ravel())

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

关于python - Numpy Softmax - 具有多个元素的数组的真值是不明确的。使用 a.any() 或 a.all(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38991216/

相关文章:

python - 如何访问 Celery AsyncResult 中的重试尝试

python - 如何重命名 python pandas 数据框中的列?

javascript - 如何随机选择3个元素并将其从数组中删除?

python - 图像 Python 的滚动统计

python - 在 PyPy 上矢量化高斯 CDF(或 erf/erfc/等)的最快方法(即没有 SciPy)

python - 如何使用python dxfwrite绘制六边形形状

arrays - 数组各部分的 Octave 平均值

javascript - 使用 array.reduce 方法统计重复元素

Python NumPy : sum every 3 rows (converting monthly to quarterly)

python - 谷歌地球引擎Python API : Map function over image collection with a list of bands