【发布时间】:2019-11-25 02:50:58
【问题描述】:
我一直在 Keras 中使用 LSTM 进行序列分类。 我有 200 个序列属于 0 或 1 两个类 每个序列都有一个从 T1、T2、T3 .....T50 开始的时间步长
如何在训练后的时间步 T40(序列结束之前)更早地预测类?
例如:培训
给定:1、2、3、4、5 --> 预测:“好”
给定:6、7、8、9、10 --> 预测:“坏”
预测:(我需要的)
给定 [1,2,3] --> 预测:'好'
我确信会有一些方法/论文/资源来满足我的上述要求。
我的工作模式
我的数据包含车辆 CAN 信号、动态数据。
X.shape = (195,100,4)
# 195 segments, each segment is of shape 100*4
# every row in 100*4 corresponds to each Time step
# each time step in 100*4 represented as t1, t2, t3,.....t100
Y.shape(195,)
# each segment out of 195 segments belongs to either 0 or 1 (2 classes)
Keras 代码
input_ = Input(shape=(100,4))
x = LSTM(10, return_sequences= True, activation='tanh')(input_)
x = GlobalMaxPool1D()(x)
output = Dense(1, activation="sigmoid")(x)
model = Model(inputs=input_, outputs=output)
model.compile(
loss='binary_crossentropy',
optimizer=Adam(lr=1e-3),
metrics=['accuracy']
)
# Training
r = model.fit(
X,
Y,
batch_size=5,
epochs=100,
validation_split=0.1
)
【问题讨论】:
-
最好不要,句子内容可能会因为结尾词而有很大差异
-
我无法理解您的意思..@user8426627 供您参考,我不使用 NLP 或句子、嵌入层。我正在处理一段时间内的车辆动力学数据
-
请发布一个基本模型作为一个可行的例子。
-
好的,如果你想要它只是训练不同的长度。您想要 1,2,3,4,5->good, 1 2 3-> good,第二个只是数据集中的另一个数据,很容易创建:1-> good, 1,2, - > 好,等等...我对于动态数据随着时间的推移可能 1D CNN 或 RCNN(1D CNN -> RNN)是更好的选择
-
@NathanMcCoy 请看我上面编辑过的问题 这是我到目前为止所做的..我不确定我所做的是否正确.. 如果我错了,请纠正我
标签: python keras deep-learning lstm recurrent-neural-network