我如何为keras conv1d塑造我的数据集

时间:2019-10-21 09:25:41

标签: python keras conv-neural-network variable-length

我有一个来自多个通道的可变长度测量数据集,我希望将其放入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()

0 个答案:

没有答案