ValueError: 在神经网络中设置数组元素时使用序列。

我在学习一个关于神经网络的教程,但尝试按照自己的方式进行操作,但在这一行代码时遇到了问题:

_Y[i0,i1]=ForwardPass(Neural_net, np.array([[x0,x1]]))

控制台显示错误信息:

ValueError: setting an array element with a sequence.

变量在以下代码块中定义:

    res = 50    _x0=np.linspace(-1.5,1.5,res)    _x1=np.linspace(-1.5,1.5,res)    _Y = np.zeros((res,res))    for i0,x0 in enumerate(_x0):      for i1,x1 in enumerate(_x1):        _Y[i0,i1]=ForwardPass(Neural_net, np.array([[x0,x1]]))

这是ForwardPass函数的代码:

def ForwardPass(neu_net, ent):  outs=[ent]  for l, layer in enumerate(neu_net):    Sp=outs[-1]@neu_net[l].w + neu_net[l].b    a=neu_net[l].act_f[0](Sp)    outs.append(a)  return outs

回答:

如果你在迭代中添加一个打印语句来检查_Y[i0,i1]的值:

res = 50_x0=np.linspace(-1.5,1.5,res)_x1=np.linspace(-1.5,1.5,res)_Y = np.zeros((res,res))for i0,x0 in enumerate(_x0):    for i1,x1 in enumerate(_x1):        print(_Y[i0,i1])>>0.0  0.0  0.0  ..

_Y[i0,i1] 是一个浮点值,而 ForwardPass(Neural_net, np.array([[x0,x1]])) 的返回结果是一个列表。

因此,正如错误信息 ValueError: setting an array element with a sequence. 所述,这是因为你试图将一个列表(数组)赋值给一个浮点值(数组元素)。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注