Python ValueError:使用序列设置数组元素。关于Keras模型.fit

Python ValueError:使用序列设置数组元素。关于Keras模型.fit,python,tensorflow,keras,lstm,named-entity-recognition,Python,Tensorflow,Keras,Lstm,Named Entity Recognition,我在keras model.fit上得到了“ValueError:设置一个序列数组元素” model.fit(X_tr, np.array(y_tr), batch_size=32, epochs=5, validation_split=0.1, verbose=1) X_tr Out[22]: array([[4256, 1244, 4475, ..., 8766, 8766, 8766], [5443, 3401, 4709, ..., 8766, 8766, 8766]

我在keras model.fit上得到了“ValueError:设置一个序列数组元素”

model.fit(X_tr, np.array(y_tr), batch_size=32, epochs=5, validation_split=0.1, verbose=1)



X_tr
Out[22]:
array([[4256, 1244, 4475, ..., 8766, 8766, 8766],
       [5443, 3401, 4709, ..., 8766, 8766, 8766],
       [3829,  543,  681, ..., 8766, 8766, 8766],
       ...,
       [2185, 7510, 8004, ..., 8766, 8766, 8766],
       [7562, 5842, 4742, ..., 8766, 8766, 8766],
       [2449, 6217, 2310, ..., 8766, 8766, 8766]], dtype=int32)

X_tr.shape
(2699, 75)

np.array(y_tr)
Out[37]:
array([array([[0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
    0.],
   [0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
    0.],
   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0.,
    0.],
   ...,
   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0.,
    0.],
   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0.,
    0.],
   [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0.,
    0.]], dtype=float32)], dtype=object)

np.array(y_tr).shape
(2699,)
我很困惑,有人能帮我吗?提前谢谢


如果您需要代码:

错误肯定源于您将对象数组作为预测变量传入。从你的代码片段中我可以看出,你的
y_tr
应该是形状(2699,17)。可能您在
y\u tr
中的某些行不长,或者您专门使用了对象数组来生成数据。如果是后者,您可以尝试按如下方式将其转换回:

y_tr = np.asarray([np.asarray(row, dtype=float) for row in y_tr], dtype=float)

float
替换为适合您需要的任何类型。如果行的大小也不同,则会出现错误。

非常感谢!它最终是由y_tr的错误维度造成的。非常感谢您的快速响应。这对我帮助很大。