如何使用 LSTM 在多元时间序列分类中屏蔽填充值

问题描述

我想知道如何为多个多元时间序列的分类屏蔽填充值。我有大约 10,000 个不同时间长度的时间序列,所以我目前正在用值 -100 填充该系列(选择原因是时间序列中没有一个值为 -100)。我希望模型忽略这些值,但我无法找到一种方法来掩盖后面的 Dense 层中的这个值,而不会将最终的 Dense 层更改为与输入具有相同维度的输出在这种情况下为 3。>

model = Sequential()
model.add(Masking(mask_value=0,input_shape=(X_train.shape[1],X_train.shape[2])))
model.add(LSTM(64,return_sequences=True)) 
model.add(Dropout(0.2))
model.add(LSTM(30,return_sequences=False))  
model.add(Dropout(0.2))
model.add(Dense(20,activation='sigmoid'))
model.add(Dropout(0.2))
model.add(Dense(1,activation='sigmoid'))
model.compile(loss='binary_crossentropy',optimizer='adam')
model.summary()

for i,l in enumerate(model.layers):
    print(f'layer {i}: {l}')
    print(f'has input mask: {l.input_mask}')
    print(f'has output mask: {l.output_mask}')

表明后面的层没有输入或输出掩码,这是有道理的,因为在第二个 LSTM 层中 return_sequences=False。不知道如何解决这个问题。蒙面还有意义吗?我的想法是完全错误的吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...