** 或 pow() 的 Py 操作数类型:'list' 和 'int'

Py Operand type(s) for ** or pow(): 'list' and 'int'

帮助

只有 numpy 的简单神经网络。代码 returns 错误

代码

pe = [1,20,-15 ... 23]


learning_rate = 1e-6
#5 generations
for i in range(5):

      #sess = 60 data/12
      while srss <= sess:
              i0 = np.iloc[t][0]
              i1 = np.iloc[t][1]                      
              i2 =  np.iloc[t][2]

              ...
              ...
              i23 =  np.iloc[t][23]

              X = [i0, i1, i2 .... i23]

              y = np.sin(x)

              y_pred = i0 * pe[0] + i1 * pe[1] ...... i23 * pe[23]
              los = np.square(y_pred - y).sum

              If srss == sess:
                 
                   grad_y_pred = 2.0 * (y_pred - y)
                   gred_0 = gred_y_pred.sum()
                   gred_01 = (gred_y_pred * x).sum()
                   gred_02 = (gred_y_pred * x ** 2).sum()

                   gred_23 = (gred_y_pred * x ** 23).sum()                 
                   ....

                   pe[0] -= learning_rate * grad_00
                   pe[1] -= learning_rate * grad_01
                   pe[2] -= learning_rate * grad_01
                   ....
                   pe[23] -= learning_rate * grad_23

              srss = srss + 1

输出

Traceback (most recent call last):
File "run.py", line 124, in <module>
grad_02 = (grad_y_pred * x ** 2).sum()                                    
TypeError: unsupported operand type(s) for ** or pow(): 'list' and 'int'

值类型

更多 我需要一个正确的函数来将 OUTPUT 分类为最高 0.5 或最低 0.5

尝试将 X(还是 x?)转换为 numpy 数组而不是列表:

X = np.array([i0, i1, i2 .... i23])