为什么我的模型只有在开始时添加一个跨度为 1 层的 MaxPooling 时才会收敛?

数据挖掘 喀拉斯 张量流
2022-02-11 00:42:17

我有一个模型,它输入以 60 赫兹收集的惯性传感器数据并输出两个类别之一。我已将数据分解为 1 分钟的快照,这似乎是合适的。我已将数据拆分为训练集和验证集。作为基线,我 64% 的数据是 1 类和 2 类。我使用的是 keras + tensorflow。

我已经测试了两个第一层。一个是 kernel_size 为 (6,) [模型在基线处执行] 的 Conv1D,另一个是 pool_size 为 (1,) [在接近 92% 时表现接近理想] 的 MaxPooling1D。我的工作假设是内核大小为 1 的 MaxPooling 层不应该做任何重要的事情,但不知何故,除非我添加这一层,否则模型不会收敛。有人可以帮我理解添加一个 pool_size 为 1 的 MaxPooling1D 层如何帮助我的模型收敛吗?

if MAX_POOL_FIRST:
    model.add(MaxPooling1D(pool_size=(1, ), input_shape=input_shape))
    model.add(Conv1D(16, kernel_size=(6, ), activation='relu'))
else:
    model.add(Conv1D(16, kernel_size=(6, ), activation='relu', input_shape=input_shape))
0个回答
没有发现任何回复~