繁体   English   中英

使用 Keras 和 TensorFlow 构建 LSTM Sequential 模型

[英]Using Keras and TensorFlow building LSTM Sequential model

我们在课堂上学习了使用 Keras 构建 LSTM 模型,但是,我仍然对如何为模型设置层感到困惑。 规则是什么?每一步意味着什么?

例如,对于下面的代码:

from keras.models import Sequential
from keras.layers import LSTM
from keras.layers import Dropout
from keras.layers import Dense
numUnits = 50
model = Sequential()
model.add( LSTM(units=numUnits,return_sequences=True,
                input_shape=(X_train.shape[1], 1)) )
model.add( Dropout(0.2) )

model.add( LSTM(units=numUnits) )
model.add( Dropout(0.2) )

model.add( Dense(units=1) )
model.compile( loss='mean_squared_error' )

这些步骤中的每一个是什么意思? 我们需要在设置每一层后使用 dropout 吗? 它总是必须以 Dense 层结束吗?

添加到模型中的第一层是 LSTM(长短期记忆)层,这是一种循环神经网络层,非常适合处理顺序数据。

Dropout 层用于在训练期间随机丢弃一部分单元,这有助于防止过度拟合。 它根据其输入参数丢弃一小部分单位。

密集层是神经网络中最常见的层类型,它通常用于将前一层的输出转换为适合手头任务的格式。 例如,如果任务是分类任务,则密集层可用于将前一层的输出转换为类别的概率分布。

为了回答您的问题,Dropout 层并不是在每一层之后都需要,但它们通常放置在循环层(例如 LSTM 或 GRU)之后以防止过度拟合。 密集层通常是模型中的最后一层,但并非完全必要。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM