在python keras LSTM中,我应该在什么基础上设置输入和输出形状?

yjghlzjz  于 2023-02-08  发布在  Python
关注(0)|答案(1)|浏览(131)

我有shape的数据集(143312,30),我使用以下代码设置模型

model = Sequential()
model.add(LSTM(100,activation='sigmoid', input_shape = (30,1 ) ))
model.add(Dense(5, activation='softmax'))
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy',f1_m,precision_m, recall_m])

它正在工作,但我不知道为什么。它只是关于功能编号吗?当我有30个功能,然后我简单地设置它像这样吗?1是什么意思,在什么基础上密集设置为5?

93ze6v8z

93ze6v8z1#

关于这个:

LSTM(100,activation='sigmoid', input_shape = (30,1))

你已经创建了RNN,它处理30个项目的序列,每个项目有一个特征。这与你的形状为(143312,30)的数据集相匹配。数据集包含143312个数据序列,每个序列长30个项目,每个项目只是一个特征。
这里的100指定了LSTM中使用的单元(递归神经元)的数量。它是一个超参数,对于更复杂的模型使用更大的数量,如果模型过拟合数据,则使用更小的数量。
关于这个:

model.add(Dense(5, activation='softmax'))

这是你的模型的输出层,显然你正在使用你的模型进行分类(“softmax”激活函数),你的标签有5个类,因此在密集层有5个神经元。

相关问题