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

时间:2019-06-24 07:36:21

标签: python-3.x

我正在尝试实现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)

1 个答案:

答案 0 :(得分:1)

当您尝试将数组用作布尔值时,将引发此错误。在您的AF函数中,您得到的是一个数组而不是单个数字,因此它不知道在执行True时它应求值为False还是if x>0:

在代码中发生这种情况是因为您使用的是x而不是传递的参数,请尝试重新定义函数,如:

def AF(val):
  if val > 0:
      return val
  return 0