我在 keras model.fit 上收到“ValueError: setting an array element with a sequence”

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,)

我很困惑,有没有人可以帮助我?提前致谢!

如果您需要代码:https://github.com/sunsuntianyi/question/blob/master/LSTM.ipynb

最佳答案

该错误肯定源于您传入一个对象数组作为您的预测变量。你的 y_tr 应该是形状 (2699,17),据我从你的片段中可以看出。也许 y_tr 中的某些行不是 17 长,或者您可能专门使用对象数组来生成数据。如果是后者,您可以尝试像这样将其转换回来:

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

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

关于python - 值错误 : setting an array element with a sequence. 在 Keras model.fit 上,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55663594/

10-12 17:31