我正在尝试实现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)
答案 0 :(得分:1)
当您尝试将数组用作布尔值时,将引发此错误。在您的AF
函数中,您得到的是一个数组而不是单个数字,因此它不知道在执行True
时它应求值为False
还是if x>0:
。>
在代码中发生这种情况是因为您使用的是x
而不是传递的参数,请尝试重新定义函数,如:
def AF(val):
if val > 0:
return val
return 0