You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

步态分类任务中更换数据集与模型后准确率无变化的问题

步态分类任务准确率异常问题

问题情况

我正在做步态分类任务,用到时序骨骼数据和足底压力数据两类数据。但不管用哪类数据集、哪种模型,准确率都几乎没变化:

  • 用骨骼数据搭配GRU模型时,不管设置1层还是8层GRU,准确率始终在15-17之间;
  • 用足底压力图像搭配CNN模型时,不管设置1层还是4层卷积层,结果也完全一致。

我已经试过很多方法,包括用留一交叉验证(数据集共1960个样本),还有对数据集做合理的归一化处理,但都没效果。

所用CNN模型代码

CNNBaseline = tf.keras.Sequential([
  tf.keras.layers.Conv2D(32, 5, strides=2, name='conv0'),
  tf.keras.layers.BatchNormalization(axis=2, name='bn0'),
  tf.keras.layers.AveragePooling2D(pool_size=(4, 4),strides=(1, 1), padding="valid", name='pool0'),

  tf.keras.layers.Conv2D(28, 5, strides=1, name='conv1'),
  tf.keras.layers.BatchNormalization(axis=2, name='bn1'),
  tf.keras.layers.AveragePooling2D(pool_size=(4, 4),strides=(1, 1), padding="valid", name='pool1'),

  tf.keras.layers.Flatten(),
  tf.keras.layers.Activation('relu'),
  tf.keras.layers.Dense(6, activation = "softmax")
])


loss_object = tf.keras.losses.CategoricalCrossentropy(from_logits=True)
optimizer = tf.keras.optimizers.AdamW(amsgrad = True)

train_loss = tf.keras.metrics.Mean(name='train_loss')
train_accuracy = tf.keras.metrics.CategoricalAccuracy(name='train_accuracy')

test_loss = tf.keras.metrics.Mean(name='test_loss')
test_accuracy = tf.keras.metrics.CategoricalAccuracy(name='test_accuracy')

@tf.function
def train_step(images, labels, model):
  with tf.GradientTape() as tape:
    # training=True is only needed if there are layers with different
    # behavior during training versus inference (e.g. Dropout).
    predictions = model(input, training=True)
    # print(predictions.shape, labels.shape)
    loss = loss_object(labels, predictions)
  gradients = tape.gradient(loss, model.trainable_variables)
  optimizer.apply_gradients(zip(gradients, model.trainable_variables))

  train_loss(loss)
  train_accuracy(labels, predictions)

@tf.function
def test_step(images, labels, model):
  # training=False is only needed if there are layers with different
  # behavior during training versus inference (e.g. Dropout).
  predictions = model(images, training=False)
  t_loss = loss_object(labels, predictions)

  test_loss(t_loss)
  test_accuracy(labels, predictions)

EPOCHS = 25

for i, (train_dataset, val_dataset) in enumerate(new_folds):
  print("--- FOLD {} ---".format(i+1))
  for epoch in range(EPOCHS):
    # Reset the metrics at the start of the next epoch
    train_loss.reset_states()
    train_accuracy.reset_states()
    # test_loss.reset_states()
    # test_accuracy.reset_states()

    for input, labels in train_dataset:
      train_step(input, labels, CNNBaseline)

    for test_input, test_labels in val_dataset:
      test_step(test_input, test_labels, CNNBaseline)

    print(
      f'Epoch {epoch + 1}, '
      f'Loss: {train_loss.result()}, '
      f'Accuracy: {train_accuracy.result() * 100}, '
      f'Test Loss: {test_loss.result()}, '
      f'Test Accuracy: {test_accuracy.result() * 100}'
    )

训练结果

Epoch 1, Loss: 2.1716630458831787, Accuracy: 16.011903762817383, Test Loss: 1.8004146814346313, Test Accuracy: 20.0
Epoch 2, Loss: 1.8933827877044678, Accuracy: 16.904762268066406, Test Loss: 1.8022382259368896, Test Accuracy: 16.666667938232422
Epoch 3, Loss: 1.853434681892395, Accuracy: 15.892857551574707, Test Loss: 1.7935744524002075, Test Accuracy: 18.61111068725586
Epoch 4, Loss: 1.8187559843063354, Accuracy: 18.095237731933594, Test Loss: 1.789302110671997, Test Accuracy: 18.54166603088379
Epoch 5, Loss: 1.8167860507965088, Accuracy: 16.845237731933594, Test Loss: 1.785824179649353, Test Accuracy: 17.66666603088379
Epoch 6, Loss: 1.8007153272628784, Accuracy: 17.321428298950195, Test Loss: 1.7855454683303833, Test Accuracy: 17.91666603088379
Epoch 7, Loss: 1.798923373222351, Accuracy: 16.7261905670166, Test Loss: 1.7870519161224365, Test Accuracy: 16.666667938232422
Epoch 8, Loss: 1.7977991104125977, Accuracy: 16.7261905670166, Test Loss: 1.7880070209503174, Test Accuracy: 16.5625
Epoch 9, Loss: 1.7937138080596924, Accuracy: 16.904762268066406, Test Loss: 1.78699791431427, Test Accuracy: 16.759260177612305
Epoch 10, Loss: 1.794595718383789, Accuracy: 15.773809432983398, Test Loss: 1.7874552011489868, Test Accuracy: 16.83333396911621
Epoch 11, Loss: 1.7926329374313354, Accuracy: 16.78571319580078, Test Loss: 1.7887686491012573, Test Accuracy: 15.606060981750488
Epoch 12, Loss: 1.792636513710022, Accuracy: 15.059523582458496, Test Loss: 1.7890628576278687, Test Accuracy: 15.06944465637207
Epoch 13, Loss: 1.7926796674728394, Accuracy: 16.7261905670166, Test Loss: 1.789198637008667, Test Accuracy: 14.743590354919434
Epoch 14, Loss: 1.7923105955123901, Accuracy: 16.845237731933594, Test Loss: 1.7894119024276733, Test Accuracy: 14.226190567016602
Epoch 15, Loss: 1.792075514793396, Accuracy: 15.535714149475098, Test Loss: 1.7896616458892822, Test Accuracy: 14.44444465637207
Epoch 16, Loss: 1.7925114631652832, Accuracy: 15.535714149475098, Test Loss: 1.7899030447006226, Test Accuracy: 14.791666030883789
Epoch 17, Loss: 1.7919762134552002, Accuracy: 16.309524536132812, Test Loss: 1.790137529373169, Test Accuracy: 15.098039627075195
Epoch 18, Loss: 1.7920151948928833, Accuracy: 16.011903762817383, Test Loss: 1.790404200553894, Test Accuracy: 14.907407760620117
Epoch 19, Loss: 1.792333960533142, Accuracy: 15.773809432983398, Test Loss: 1.790627360343933, Test Accuracy: 14.561403274536133
Epoch 20, Loss: 1.792126178741455, Accuracy: 17.0238094329834, Test Loss: 1.790829062461853, Test Accuracy: 14.166666984558105
Epoch 21, Loss: 1.7918967008590698, Accuracy: 15.833333015441895, Test Loss: 1.7911324501037598, Test Accuracy: 13.928571701049805
Epoch 22, Loss: 1.792186975479126, Accuracy: 16.19047737121582, Test Loss: 1.791191577911377, Test Accuracy: 14.090909004211426
Epoch 23, Loss: 1.7919899225234985, Accuracy: 15.714285850524902, Test Loss: 1.7912797927856445, Test Accuracy: 14.094202041625977
Epoch 24, Loss: 1.7919201850891113, Accuracy: 17.142858505249023, Test Loss: 1.7914255857467651, Test Accuracy: 13.958333015441895
Epoch 25, Loss: 1.7919764518737793, Accuracy: 15.357142448425293, Test Loss: 1.7914543151855469, Test Accuracy: 13.933333396911621

内容的提问来源于stack exchange,提问作者Eleni Papadopulos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 03:54:50