Как мне сформировать мой набор данных для keras conv1d? - PullRequest
0 голосов
/ 21 октября 2019

У меня есть набор данных измерений переменной длины по нескольким каналам, которые я хочу разместить через сеть keras. Как мне сформировать мой фрейм данных, чтобы он прошел через него?

В настоящее время кадр имеет такую ​​форму:

HR(bpm)                                            Sp02(%)
[79, 80, 79, 79, 79, 79, 79, 79, 79, 79, 79, 7...  [99, 98, 99, 99, 99, 99, 98.5, 99, 98, 99, 98,...
[91, 91, 92, 94, 91, 94, 92, 90, 93, 91, 91, 9...  [99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 9...
[71, 82, 77, 76, 76, 82, 87, 79, 77, 77, 76, 7...  [95, 94, 97, 96, 95, 97.5, 94, 95.5, 95, 95, 9...
[63, 63, 62, 62, 64, 62, 63, 61, 61, 62, 62, 6...  [97, 98, 97, 97, 98, 97.5, 97, 98, 98, 98, 98,...
[71, 72, 76, 71, 80, 71, 72, 73, 72, 79, 70, 7...  [97.58, 92, 92, 98, 97, 97.5, 98, 97, 97, 97, ...

Таким образом, каждая строка имеет массив для каждого канала (тип измерения) с измерением на временной шаг. Длина этих массивов различна, поскольку не все строки имеют одинаковое количество временных шагов.

Моя сеть (в настоящее время) выглядит следующим образом:

model = models.Sequential()

model.add(layers.Conv1D(100, 1, padding='same', input_shape=(None, n_features)))
model.add(layers.Dropout(0.5))
model.add(layers.MaxPooling1D(pool_size=2))

model.add(layers.Flatten())
model.add(layers.Dense(64))
model.add(layers.Activation('relu'))
model.add(layers.Dropout(0.5))
model.add(layers.Dense(2))
model.add(layers.Activation('softmax'))

model.compile(loss='categorical_crossentropy',
              optimizer='adam',
              metrics=['accuracy'])

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