Как изменить форму массива в 3d с помощью керас - PullRequest
0 голосов
/ 27 января 2020

У меня 1260 строк и 2 столбца, которые представляют функцию для каждого столбца (т. Е. «Open», «High») для прогнозов по акциям. Мне нужно преобразовать этот массив в 3D-массив для ввода в Nerual Network с использованием LSTM.

Пока мой код:

X_train, y_train = np.array(X_train), np.array(y_train)
X_train = np.reshape(X_train, (X_train.shape[0], X_train.shape[1], 2))

Последняя строка кода, в которой я запутался что это говорит мне Он предназначен для помещения его в 3D-массив, но для меня он выглядит как 2D-массив.

Как передать сети массив (или вектор открытых значений) и массив высоких значений.

1 Ответ

0 голосов
/ 27 января 2020

Полагаю, X_train.shape - это тензор 2D, если вы хотите сделать его 3D, вы можете использовать np.expand_dims

Пример

arr = np.random.randint(0,5,(3,3))

array([[3, 4, 1],
       [1, 0, 1],
       [4, 4, 2]])

arr.shape = (3,3)
reshape_arr = np.np.expand_dims(arr, -1)
reshape_arr.shape = (3,3,1)
...