微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

LSTM分类

如何解决LSTM分类

问题:我有很多设备可以发送和接收消息。每条消息都有一个消息类型。我想根据每个设备收到的消息进行预测,如果将来设备将被禁用。
输入:numpy 数组大小 =(设备长度,每个设备接收的最大消息长度,功能数量)=(10000,1350,20)。特征是热编码的消息类型和以秒为单位的时间戳。
我发现的所有教程的问题是输入的第一个维度是时间步长。我基本上希望 LSTM 在每个设备上、每个时间步上进行训练,并学习预测未来哪些设备将被禁用。

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense,Dropout,LSTM

model = Sequential()

model.add(LSTM(128,input_shape=(1385,20),return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(128))
model.add(Dropout(0.2))
model.add(Dense(32,activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(1,activation='sigmoid'))

import tensorflow as tf
optimizer = tf.keras.optimizers.Adam(lr=1e-3,decay=1e-5)
model.compile(loss=tf.keras.losses.BinaryCrossentropy(from_logits=True),optimizer=optimizer,metrics=['accuracy'])

history = model.fit(X_train,y_train,batch_size=64,epochs=1,validation_data= 
(X_test,y_test))

现在模型只预测所有输入的相同值,并且所有时期的验证准确率都保持在 65%。我的猜测是模型认为设备的长度是时间步长,而其他两个值是特征。那么如何告诉模型我想对每个设备而不是每个时间步进行分类

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。