lstm 变长序列_keras在构建LSTM模型时对变长序列的处理操作

本文介绍了如何在Keras中使用LSTM处理变长序列,通过`pad_sequences`进行序列填充,并展示了模型构建、训练与保存的过程。还涉及到RNN与LSTM的状态值和输出一致性,以及`dynamic_rnn`中数据序列长度的处理技巧。
摘要由CSDN通过智能技术生成

我就废话不多说了,大家还是直接看代码吧~

print(np.shape(X))#(1920, 45, 20)

X=sequence.pad_sequences(X, maxlen=100, padding="post")

print(np.shape(X))#(1920, 100, 20)

model = Sequential()

model.add(Masking(mask_value=0,input_shape=(100,20)))

model.add(LSTM(128,dropout_W=0.5,dropout_U=0.5))

model.add(Dense(13,activation="softmax"))

model.compile(loss="categorical_crossentropy",

optimizer="adam",

metrics=["accuracy"])

# 用于保存验证集误差最小的参数,当验证集误差减少时,保存下来

checkpointer = ModelCheckpoint(filepath="keras_rnn.hdf5", verbose=1, save_best_only=True, )

history = LossHistory()

result = model.fit(X, Y, batch_size=10,

nb_epoch=500, verbose=1, validation_data=(testX, testY),

callbacks=[check

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值