【发布时间】:2020-06-19 23:54:52
【问题描述】:
这是我对手势进行分类的 LSTM 模型。最初,我有 1960 个 shape(num_sequences, num_joints, 3) 的训练数据,我将其重塑为 shape(num_sequences, num_joints*3)。
这是我的模型:
input_shape = (trainx.shape[1], trainx.shape[2])
print("Build LSTM RNN model ...")
model = Sequential()
model.add(Masking(mask_value=0., input_shape=(171, 66)))
model.add(Bidirectional(LSTM(units=256, activation='tanh', return_sequences=True, input_shape=input_shape)))
model.add(Dropout(0.5))
model.add(BatchNormalization())
model.add(Bidirectional(LSTM(units=128, activation='tanh', return_sequences=True)))
model.add(Dropout(0.5))
model.add(BatchNormalization())
model.add(Bidirectional(LSTM(units=128, activation='tanh', return_sequences=False)))
model.add(Dropout(0.5))
model.add(BatchNormalization())
model.add(Dense(units=trainy.shape[1], activation="softmax"))
print("Compiling ...")
# Keras optimizer defaults:
# Adam : lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-8, decay=0.
# RMSprop: lr=0.001, rho=0.9, epsilon=1e-8, decay=0.
# SGD : lr=0.01, momentum=0., decay=0.
opt = Adam()
model.compile(loss="categorical_crossentropy", optimizer=opt, metrics=["accuracy"])
我在训练中获得 90% 的准确率,在测试中获得 50% 的准确率
【问题讨论】:
-
您好,过拟合是深度学习中很常见的问题。您能否重新提出问题并更具体地说明您为解决问题所采取的步骤?
-
我修改了 Dropout 值,减少了 pf LSTM 单元的数量,更改了优化器,但我遇到了同样的问题。我可以尝试数据增强,但我不知道它是否会很有趣
-
显示代码的“model.fit”部分!
-
@Bharath batch_size = 128 num_epochs = 30 history = model.fit( trainx, trainy, batch_size=batch_size, epochs=num_epochs, validation_data= (testx, testy) )
-
我猜这是样本的分布,通过适当的分层将它们分开,它可能会正常工作。
标签: python keras deep-learning classification lstm