python-3.x - 错误:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()
问题描述
我正在尝试实现一个 maxnet NN,但在尝试定义我的激活函数时出现了该错误,我该如何摆脱这个错误?
import numpy as np
def AF (Self):
if x>0:
return x
return 0
x= np.array([1.2, 1.1, 0.9, 0.95, 1])
eps= 0.15
y=np.zeros(5)
count=0
temp=sum(x)
while True:
for i in range (5):
val= x[i]- eps*temp +eps*x[i]
y= np.append(AF(val))
x= y.copy()
count+=1
if sum(y)== max(y):
break
print(y)
解决方案
当您尝试将数组用作布尔值时会引发此错误。在您的AF
函数中,您将获得一个数组而不是单个数字,因此它不知道它是否应该评估为True
或False
何时执行if x>0:
.
在您的代码中发生这种情况是因为您使用x
而不是传递的参数,请尝试重新定义您的函数,例如:
def AF(val):
if val > 0:
return val
return 0
推荐阅读
- rest - 如何在 Maximo REST API 中重置对象中的日期属性
- numpy - Networkx 最大独立集重现性
- c++ - c++ 范围视图的惰性组合
- spring-boot - Springboot 独立应用支持 Rest & UI
- javascript - 将多个 html 页面中的元素转换为 javascript
- elasticsearch - ElasticSearch - 过滤结果并操作文档
- recursion - 如何在 PROLOG 中停止无限递归
- java - 根据类成员选择适当的枚举类
- web-scraping - 对带有条件的 imacro 使用 css 选择器
- vue.js - 如何在输入时禁用折叠 vb-toggle 事件?