У меня есть модель Keras, которая, когда я подхожу, терпит неудачу с этой ошибкой
> kerasInput = Input(shape=(None, 47))
> LSTM(..)(kerasInput)
...
> model.fit(realInput, ...)
ValueError: Error when checking input: expected input_1 to have 3 dimensions, but got array with shape (10842, 1)
Посмотрев на свой ввод, я обнаружил, что он имеет форму (10842, 1), но для каждой строки это фактически список списка. Я могу проверить с
> pd.DataFrame(realInput[0]).shape
(260, 47)
Как мне исправить форму ввода?
При попытке со слоем keras Reshape создание модели завершается ошибкой:
Model inputs must come from `keras.layers.Input` (thus holding past layer metadata), they cannot be the output of a previous non-Input layer. Here, a tensor specified as input to your model was not an Input tensor, it was generated by layer reshape_8.
Note that input tensors are instantiated via `tensor = keras.layers.Input(shape)`.
The tensor that caused the issue was: reshape_8/Reshape:0
да, у меня есть слой LSTM, который обрабатывает ввод
LSTM принимает 3-мерный ввод формы (размер_пакета, длина_последовательности, размер_функции). Что представляет ваш входной массив?
Я знаю, дело в том, что я преобразовываю строковый столбец в массив массивов. Как показано выше, строки имеют хорошую форму, но затем, когда я передаю их в качестве входных данных, подгонка модели не выполняется.
Я предполагаю, что вам нужно изменить форму ваших данных, чтобы они соответствовали трехмерному формату, прежде чем вводить их в качестве входных данных. Кроме того, для input_shape это должен быть двумерный вектор (timesteps, number_of_features).

Вы можете использовать метод numpy.expand_dims для преобразования формы в 3D.
import numpy as np
np.expand_dims(realInput,axis=0)
Изменить форму слоя кераса
Используйте третий параметр как 1
# Something Similar to this
X_train = np.reshape(X_train,(X_train.shape[0],X_train.shape[1],1))
Обновлено: добавлен метод np.reshape
Обратитесь к этому репозиторию: https://github.com/NilanshBansal/Stock_Price_Prediction/blob/master/Stock_Price_Prediction_20_days_later_4_LSTM.ipynb
Я обновил пост выше с ошибкой при использовании Reshape
Я что-то решил, я пытаюсь использовать ваши советы для начала работы, я проголосовал за, но обязательно приму, как только решу проблему.
Как я уже говорил в комментариях. Вам нужно будет изменить форму ваших данных в соответствии с тем, что LSTM ожидает получить, а также убедитесь, что input_shape правильно установлен.
Я нашел этот пост очень полезным, когда я боролся с вводом в слой LSTM. Надеюсь, вам это тоже поможет: Изменить форму ввода для LSTM
Какую модель вы используете? Вы случайно не используете LSTM?