假设我们有一个用于时间序列预测的LSTM模型。此外,这是一个多变量情况,因此我们使用多个特征来训练模型。
ipt = Input(shape = (shape[0], shape[1])
x = Dropout(0.3)(ipt) ## Dropout before LSTM.
x = CuDNNLSTM(10, return_sequences = False)(x)
out = Dense(1, activation='relu')(x)
我们可以在LSTM之前(就像上面的代码)或在LSTM之后添加Dropout
层。
如果我们在LSTM之前添加它,它是应用于时间步长(时间序列的不同滞后),还是不同的输入特征,还是两者都是?
如果我们在LSTM之后添加它,并且因为
return_sequences
是False
,那么这里的dropout是做什么的?LSTM
中的dropout
选项和在LSTM
层之前的dropout层之间有什么区别吗?
CuDNNLSTM
和LSTM
不同。我基于LSTM
回答的。我认为这是因为CuDNN版本可能没有真正的递归(因为GPU不擅长递归,它们非常适合纯并行计算)。 - Daniel Möllernoise_shape=(None, 1, features)
进行特征选择,这将使每个样本有所不同,从而产生更多的变化。最简单的方法是只使用SpatialDropout1D
。 - Daniel Möller