【问题标题】:loss and accurancy stay the same after training训练后损失和准确率保持不变
【发布时间】:2020-05-19 19:27:53
【问题描述】:

我有一个使用传感器数据的人类活动识别任务的 lstm 模型。

当我训练我的模型时,损失和准确率保持不变。这种情况一般会出现哪些问题?

我尝试改变学习率但结果是一样的,

下面是我使用的模型

model = Sequential()
model.add(LSTM(64, return_sequences=True, recurrent_regularizer=l2(0.0015), input_shape=(timestamps, 
input_dim)))
model.add(Dropout(0.5))
model.add(LSTM(64, recurrent_regularizer=l2(0.0015), input_shape=(timesteps,input_dim)))


model.add(Dense(64, activation='relu'))
model.add(Dense(64, activation='relu'))

model.add(Dense(n_classes, activation='softmax'))
model.summary()

model.compile(optimizer=Adam(learning_rate = 0.0025), loss = 
'sparse_categorical_crossentropy', 
metrics = ['accuracy'])

history =model.fit(X_train, y_train, batch_size=32, epochs=100)

数据集是跨类平衡的,我使用了标准的 scaller

lying           68704
running         68704
walking         68704
climbingdown    68704
jumping         68704
climbingup      68704
standing        68704
sitting         68704

【问题讨论】:

  • 您能介绍一下您的数据集吗?
  • 是的,我编辑答案,谢谢
  • 好吧。你能告诉我y_train。它看起来像一个包含从 0 到 n_classes 的数字的数组吗?还是一个大小为 n_classes x n_samples 的矩阵?
  • 是的,喜欢这个数组([0, 7, 2, ..., 3, 1, 0])
  • 很抱歉,如果没有您的整个代码,我无话可说。此外,您可以添加指向数据集的链接。

标签: python-3.x tensorflow keras deep-learning lstm


【解决方案1】:

我在删除 l2 正则化后找到了解决方案。我不知道这是如何工作的,但我会进一步调查这个问题

【讨论】:

    猜你喜欢
    • 2020-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-20
    • 2020-10-25
    • 2018-02-02
    • 1970-01-01
    • 2018-01-08
    相关资源
    最近更新 更多