ValueError: вход 0 несовместим со слоем lstm_2: ожидаемый ndim = 3, найденный ndim = 4 - многомерные данные временных рядов

Этот ответ должен решить вашу проблему. В основном вы пытаетесь прочитать символ из потока, и он не может быть разобран на int, поэтому поток остается в состоянии ошибки.

Вы должны проверить наличие ошибки, очистить ее и реагировать соответственно. [/ д2]

1
задан Rey 16 January 2019 в 23:35
поделиться

1 ответ

Слой Keras LSTM ожидает, что вход будет 3 тусклым, как (batch_size, seq_length, input_dims), но вы неправильно его определили. Попробуйте это

layer_lstm(units = 32, input_shape = c(seq_length, 32), batch_size = batch_size, return_sequences = T)

Вам нужно изменить ваши данные на три, где новые будут представлять последовательные данные.

Я использовал игрушечный набор данных, чтобы показать пример, здесь данные и метки изначально имеют форму ((150, 32), (150,)), используя следующий скрипт:

seq_length = 10 # choice
dataX = []
dataY = []
for i in range(0, 150 - seq_length, 1):
    dataX.append(data[i:i+seq_length])
    dataY.append(labels[i+seq_length-1])
import numpy as np
dataX = np.reshape(dataX, (-1, seq_length, 32))
dataY = np.reshape(dataY, (-1, 1))
# dataX.shape, dataY.shape

Вывод: ((140, 10, 32), (140, 1))

Сейчас Вы можете смело кормить его моделью.

0
ответ дан Ankish Bansal 16 January 2019 в 23:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: