LSTM Keras сортирует входные размеры X и Y - PullRequest
0 голосов
/ 05 мая 2020

Я пытаюсь создать LSTM и не понимаю, как лучше всего сформировать мои данные.

У меня есть фрейм данных, который выглядит следующим образом:

df.head(5)


 data                                                     labels
0  [0.0009808844009380855, 0.0008974465127279559]             1
1  [0.0007158940267629654, 0.0008202958833774329]             3
2  [0.00040971929722210984, 0.000393972522972382]             3
3  [7.916243163372941e-05, 7.401835468434177e243]             3
4  [8.447556379936086e-05, 8.600626393842705e-05]             3

Столбец data - это мой X, а метки - y. В df 34890 строк. В каждом ряду по 2 поплавка. Данные представляют собой связку последовательного текста, и каждое наблюдение является представлением предложения. Всего 5 классов.

Я пытаюсь подогнать LSTM к этим данным и не понимаю, как использовать параметр timetep.

С этим кодом я получаю следующее:

data = np.array(df.class_proba.to_list())

labels = pd.get_dummies(df['speaker_spaff']).values

print('Shape of data tensor:', data.shape)
print('Shape of label tensor:', labels.shape)

Shape of data tensor: (34890, 2)
Shape of label tensor: (34890, 5)

Я думаю, что мой тензор меток правильный, но меня смущает мой тензор данных.

Слои Keras LSTM требуют формы: сэмплы, временные шаги и функции.

Если я правильно понимаю, у меня количество сэмплов 34890, моих функций 2, но как насчет временных меток? Каким должен быть параметр отметки времени и как изменить форму данных, чтобы он соответствовал этому параметру?

1 Ответ

1 голос
/ 05 мая 2020

если требуется НЕСКОЛЬКО временных шагов, вам необходимо создать функцию скользящего окна, которая поможет вам изменить форму ваших данных, для этой цели TimeSeriesGenerator от Keras - хороший инструмент ( здесь хороший пример )

если вы считаете, что ваши данные должны иметь ОДИН временной шаг, вам просто нужно просто расширить измерение:

data[:,None,:] ==> новая форма: (34890, 1, 2), метки в порядке

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...