Понимание LSTM - требуется измерение данных - PullRequest
0 голосов
/ 27 февраля 2019

У меня проблема с пониманием разницы между измерениями, которыми мы подаем слои LSTM в контексте автоэнкодера LSTM.

LSTM требует трех измерений (x, y, z).У меня есть набор данных временного ряда в общей сложности 2900 точек данных (строк), который концептуально должен анализироваться / обучаться в группах из 23 последовательных точек данных (строк), и каждая строка имеет 178 объектов / столбцов.Это потому, что каждые 23 строки у меня есть последовательность относительно нового пациента.

Правильно ли говорить, что:

  • x (ОБРАЗЦЫ) = число групп последовательностей длиной 23 Iиметь.А именно: len(dataframe)/23
  • y (TIMESTEPS) = длина последовательностей.По предположению домена, 23.
  • z (FEATURE_SIZE) = размер элемента моих строк.178 в моем случае.

Следовательно: x*y = rows of my dataset

Учитывая это и предполагая, что все в порядке, какова концепция размер партии сейчас?Правильно ли говорить, что это количество образцов, рассмотренных в эпоху?Поэтому, если у меня x (samples) 200, нет смысла использовать batch_size больше 200, потому что это мой верхний предел.

1 Ответ

0 голосов
/ 27 февраля 2019

Я понимаю, что в вашем описании говорится, что ваш общий набор данных состоит из 2900 выборок данных.Где каждая выборка данных имеет 23 временных интервала, каждый с вектором 178 измерений.

В этом случае input_shape для вашей модели должен быть определен как (23, 178).Размер партии - это просто количество выборок (из 2900), которые будут использоваться для обучения / теста / прогнозирования.

Попробуйте выполнить следующее:

from keras.models import Sequential
from keras.layers import Dense, LSTM


model = Sequential()
model.add(LSTM(64, input_shape=(23,178)))
model.compile(loss='mse', optimizer='sgd')
model.summary()

print model.input

Это простоупрощенная модель, которая выводит один вектор шириной 64 для каждой выборки.Вы увидите, что ожидаемый model.input:

Tensor("lstm_3_input:0", shape=(?, 23, 178), dtype=float32)

batch_size не задан в форме ввода, что означает, что модель может использоваться для обучения / прогнозирования пакетов разных размеров.

...