【问题标题】:How to monitor accuracy in tensorflow (metric accuracy is not available)如何在 tensorflow 中监控准确度(度量准确度不可用)
【发布时间】:2021-08-24 04:48:08
【问题描述】:

我想监控我的 tensorflow 模型的准确性,但是,当使用 metrics=['accuracy'] 或 metrics=[tf.keras.metrics.Accuracy()] 编译我的模型然后训练我的模型时,会弹出以下警告。

警告:tensorflow:提前停止取决于指标accuracy,这是不可用的。可用的指标有:loss、val_loss

model.compile(optimizer='adam', loss='mean_squared_error', metrics=["tried both options i mentioned"])
callbacks = [EarlyStopping(monitor='accuracy', patience=1000)]          
model.fit(x_train, y_train, epochs=5000, batch_size=100, validation_split=0.2, callbacks=callbacks)

【问题讨论】:

  • 两者都用过? metrics=['accuracy', 'loss']
  • 我可以试一试,但我看不出这有什么帮助,因为损失已经被检测为一个指标。
  • 试过了,没用。
  • 你试过metrics=['val_loss']吗?
  • 你的数据集中有多少样本?

标签: python tensorflow machine-learning keras


【解决方案1】:

除了 Kaveh 的回答之外,还有其他回归问题的指标。我认为非常有用的是 R2 squared (https://en.wikipedia.org/wiki/Coefficient_of_determination),它不包含在 Keras 中。

Tensorflow 插件库 (https://www.tensorflow.org/addons) 实现了它,并且可以通过以下代码在 ANN 中使用:

import tensorflow_addons as tfa

model.compile(optimizer=tf.optimizers.Adam(learning_rate=0.01),
              loss="mean_squared_error",
              metrics=tfa.metrics.RSquare(y_shape=(1,)))

【讨论】:

    【解决方案2】:

    基于链接here: 准确性是评估分类模型的一项指标。非正式地,准确性是我们的模型正确预测的分数。形式上,准确度有以下定义:

    因此,对于回归等其他问题,您应该使用其他指标而不是accuracy,例如metrics=[tf.keras.metrics.MeanSquaredError()])

    【讨论】:

      猜你喜欢
      • 2017-06-03
      • 2021-08-02
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 2017-07-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多