Python Conv1D中的步幅使用

Python Conv1D中的步幅使用,python,tensorflow,keras,conv-neural-network,Python,Tensorflow,Keras,Conv Neural Network,这是我第一次尝试在时间序列数据中使用Conv1D。我知道默认情况下conv1d的步长为1。但是如果我有一个1500x9大小的数据,我使用了32个250大小的过滤器,步幅为9 我试图搜索很多资料,但没有得到很好的解释。如果我使用9作为步长值,我的´model.summary()´如下所示 如果我使用stride=1,那么model.summary()如下所示 它将如何工作?如果有人能解释这一点,我会很高兴。这是因为梯度,例如,如果您计算: input shape:[batch,1500,9] fi

这是我第一次尝试在时间序列数据中使用Conv1D。我知道默认情况下conv1d的步长为1。但是如果我有一个1500x9大小的数据,我使用了32个250大小的过滤器,步幅为9

我试图搜索很多资料,但没有得到很好的解释。如果我使用9作为步长值,我的´model.summary()´如下所示

如果我使用stride=1,那么model.summary()如下所示


它将如何工作?如果有人能解释这一点,我会很高兴。

这是因为梯度,例如,如果您计算:

input shape:[batch,1500,9]
filtershape:[32,9,250]
stride:1
如果padding=“same”它将过滤器应用到1500中的每32个,在这种情况下,optimizer asocietes过滤器使用1500(int(1500/1))过程的梯度进行扫描 但是,如果您将步幅设置为9,那么当您使用166(int(1500/9))过程的梯度执行此优化器asocietes过滤器时,它会将过滤器应用到1500中的每32个,并将9扫掠9

166过程的梯度比1500更容易处理。这样做可以打破输出之间的相关性。它变得更容易优化,但这并不意味着精度值会更高

如果您想更好地理解,我建议您阅读此文档:

我已经阅读了此文档。就像我发布的问题一样,当我选择步幅=1和步幅=9时,我无法理解模型性能的差异。我知道当我们选择更高的步幅值时,它会跳过这些值。但为什么模型的性能会有如此大的差异呢。stride=1的模型性能不好,但stride=9的模型性能非常好。@Gafa您没有询问性能变化的背景,只是询问stride的工作方式。
input shape:[batch,1500,9]
filtershape:[32,9,250]
stride:1