【问题标题】:Keras multiclass training accuracy does not improve and no loss is reportedKeras 多类训练准确率没有提高,没有损失报告
【发布时间】:2020-11-03 00:59:32
【问题描述】:

我不确定我的数据或我提出问题的方式有什么问题。 我已经构建了一个时间序列数据集,在 x(10 个特征)上具有多个输入特征,并且 y 被构建为一个热编码的多类输出,其特征为 (61726,3)。 y 类具有三个潜在值,并估计每个值的频率:

  • [1 0 0], 4200
  • [0 1 0], 2000
  • [0 0 1], 2100

我在 Keras 中的模型如下:

    trainy = to_categorical(trainy)
    testy = to_categorical(testy)
    
    # create model
    model = Sequential()
    model.add(Dense(8, input_dim=trainx.shape[1], activation='relu'))
    model.add(Dense(3, activation='softmax'))
    #Compile model
    model.compile(loss='categorical_crossentropy',
                  # optimizer=SGD(lr=0.0001),
                  optimizer='adam', 
                  metrics=['categorical_accuracy'])
    trainy_ints=numpy.argmax(trainy, axis=1)
    class_weights=class_weight.compute_class_weight(class_weight='balanced',
                                                    classes=numpy.unique(trainy_ints), 
                                         classification           y=trainy_ints)
    class_weights=dict(enumerate(class_weights))
    print('\tusing class_weights: ',class_weights)
    model.fit(x=trainx,y=trainy,
              batch_size=batchSize,epochs=epochs,
              class_weight=class_weights)

正如其他答案中所建议的,我尝试将优化函数更改为 SGD 并更改学习率,但这并没有帮助。

我发现了另一个关于不平衡类的答案,并认为这对我的问题有意义,因为该算法可能总是预测最频繁的类,所以我也尝试使用 class_weights 参数,如您所见,但我仍然得到同样的问题。

这是我在训练期间有问题的输出示例。您还可以看到,第一个时期似乎总是以较低的精度开始,然后在第二个时期它总是达到最大值。

Epoch 1/100
63/63 [==============================] - 0s 3ms/step - loss: nan - categorical_accuracy: 0.4818   
Epoch 2/100
63/63 [==============================] - 0s 3ms/step - loss: nan - categorical_accuracy: 0.4933
Epoch 3/100
63/63 [==============================] - 0s 3ms/step - loss: nan - categorical_accuracy: 0.4933

任何见解都非常感谢!谢谢。

【问题讨论】:

    标签: python machine-learning keras neural-network


    【解决方案1】:

    我发现我的输入数据集中仍有“nan”,这导致训练过程中断。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-29
      • 2018-01-08
      • 2019-09-06
      • 2018-12-20
      • 1970-01-01
      • 2018-09-18
      • 2020-11-20
      相关资源
      最近更新 更多