1D сверточная нейронная сеть - PullRequest
0 голосов
/ 13 февраля 2020

Мне нужно проверить CNN на данных ЭЭГ, и я слышал, что 1D-CNN полезен для приложений в реальном времени. У меня есть 5 испытуемых с данными по 3 сеанса каждый. Каждый файл содержит сигнал от 56 электродов / каналов (56, 260).

Я изо всех сил пытаюсь найти, как настроить CNN и как преобразовать входные данные.

model = Sequential()
model.add(Conv1D(filters=64, kernel_size=3, activation='relu', input_shape=input_shape))

Как выбрать форму ввода для 1DCNN из (15, 56, 260)?

1 Ответ

0 голосов
/ 13 февраля 2020

Итак, для свертки Кераса вы должны сохранить его следующим образом: (examples, time_steps, features).

Где:

  • примеров (обычно называемых выборками, но не путать с ваши образцы датчиков) - это количество примеров, которые у вас есть для вашей модели: 15
  • time_steps: непрерывная последовательная мера ваших датчиков: 260
  • функций (также каналов): количество независимые / параллельные каналы: 56

Тогда ваши данные должны иметь форму (15,260,56).

Если он уже организован как (15,56,260), вам необходимо переставить или транспонировать , а не изменять его. Вы можете попробовать numpy .swapaxes () .

Как только ваши данные организованы как (15, 260, 56), вы можете создать свою сеть с input_shape=(260,56) или даже input_shape=(None, 56) в В случае, если вы хотите последовательности переменной длины.


Это также та же форма, которая вам нужна, если вы хотите попробовать рекуррентные сети или даже смешать рекуррентные с conv1d.

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