1 и 2
Все основано на тензорах (вроде матриц, но с любым количеством измерений).
У тензоров есть формы, и все основано на формах.Тензоры ваших данных трехмерны: (samples, time_steps, features)
.
Бывает, что в одномерных свертках также используются те же трехмерные тензоры: (samples, length, channels)
.Итак:
- samples = examples = sequence
- time_steps = length
- features = channel
Секрета нет.Данные структурированы, и слои будут использовать эту структуру.Посмотрите на model.summary()
и посмотрите количество шагов и функций для каждого слоя.
3
Чередование между слоями отсутствует.
- Слой conv обработает весь входной тензор и сгенерирует выходной тензор.
- Следующий слой извлечения возьмет весь этот вывод и выдаст еще один вывод
- Слой LSTM сделает то же самое, возьмет весь ввод и выведет весь тензор.
4
Если вы сгладите данные, ваши 3D-тензоры (samples, steps, feats)
станут 2D-тензорами (samples, something)
.Нет больше структуры данных, которая может быть понята слоями.
5
Абсолютно нет требований к количеству фильтров или единиц.Единственное, что конечный вывод вашей модели должен иметь ту же форму, что и ваши y_train
данные.
Вот мое резюме модели.Похоже, что количество функций изменилось с оригинального 3 (входного) на 32 (для конвоида).Верно ли, что LSTM теперь будет обрабатывать все временные шаги (~ 81) для 32 функций conv1d вместо 3 функций ввода?
Пример сводки:
первый LSTM примет форму ввода (None, 38,32)
.Это означает, что LSTM будет обрабатывать:
Свертки отбрасывают граничные шаги, а максимальное объединение делит пополам шаги.
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv1d (Conv1D) (None, 79, 32) 320
_________________________________________________________________
conv1d_1 (Conv1D) (None, 77, 32) 3104
_________________________________________________________________
dropout (Dropout) (None, 77, 32) 0
_________________________________________________________________
max_pooling1d (MaxPooling1D) (None, 38, 32) 0
_________________________________________________________________
lstm (LSTM) (None, 38, 128) 82432
_________________________________________________________________
dropout_1 (Dropout) (None, 38, 128) 0
_________________________________________________________________
lstm_1 (LSTM) (None, 38, 64) 49408
_________________________________________________________________
lstm_2 (LSTM) (None, 32) 12416
_________________________________________________________________
dense (Dense) (None, 16) 528
_________________________________________________________________
dropout_2 (Dropout) (None, 16) 0
_________________________________________________________________
dense_1 (Dense) (None, 1) 17
=================================================================
Total params: 148,225
Trainable params: 148,225
Non-trainable params: 0
_________________________________________________________________```