#python #numpy #keras #lstm
Вопрос:
Я пытаюсь обучить модель LSTM, но всегда сталкиваюсь с ошибкой «не удалось преобразовать массив NumPy в тензор». Из Интернета я пытался решить эту проблему с помощью чего-то подобного X = np.asarray(X).astype(np.float32)
, но это не помогло.
LstmModel = Sequential()
LstmModel.add(LSTM(units = 50, return_sequences = True, input_shape = (350,7)))
LstmModel.add(LSTM(units = 50, return_sequences = True))
LstmModel.add(Dropout(0.25))
LstmModel.add(Dense(units = 1))
LstmModel.compile(optimizer = 'adam', loss = 'mean_squared_error')
counter= 0
for trainIdx, testIdx in kfold.split(X_train, y_train):
counter = counter 1
# create callbacks
model_path = 'best_model_set' str(setNumber) 'fold' str(counter) '.h5'
mc = ModelCheckpoint(model_path, monitor='val_loss', mode='min', verbose=1, save_best_only=True)
es = EarlyStopping(monitor='val_loss', min_delta=0, patience=3, verbose=1)
#LstmModel.fit(X_train[trainIdx], y_train[trainIdx], batch_size=32,epochs=6, callbacks=[mc, es])
LstmModel.fit(X_train[trainIdx], y_train[trainIdx], validation_data=(X_train[testIdx], y_train[testIdx]), batch_size=32, epochs=6, callbacks=[mc, es])
y_train-это что-то вроде
[[array([191., ..., 0.])] ...]
y_train.форма равна (100, 1),
X_train.форма равна (100, 350, 7)
Комментарии:
1. Ошибка всегда возникает в последней строке