如何为keras conv1d塑造数据集

2024-06-17 12:33:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个来自多个通道的可变长度测量数据集,我希望通过keras conv1d网络将其放置。我如何塑造我的数据框架,使其能够通过

目前,框架的形状如下:

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()

Tags: 数据网络框架addmodellayers时间hr