【问题标题】:keras load_model cannot recognize new AUC metric tf.keras.metrics.AUC()keras load_model 无法识别新的 AUC 指标 tf.keras.metrics.AUC()
【发布时间】:2020-09-17 11:21:26
【问题描述】:

我正在使用新的 tensorflow 版本,它的 auc 指标定义为 tf.keras.metrics.AUC()。该模型编译并运行良好,但是当我加载模型时,它无法识别 auc 度量函数。我添加了所需的导入功能。代码如下:

    import keras
    import tensorflow as tf
    from tensorflow.keras import backend as K
    from keras.optimizers import SGD, Adam
    from keras.models import Model, load_model
    from kerao.callbacks import Plotter
    from keras.callbacks import Callback, ModelCheckpoint

    optimizer = SGD(lr=1e-3, decay=1e-4, momentum=0.9, nesterov=True)
    model.compile(optimizer=optimizer, loss='categorical_crossentropy', metrics=[tf.keras.metrics.AUC()])

    out_path = "../model_test.h5"
    checkpoint = ModelCheckpoint(out_path, monitor='val_loss', save_best_only=True, period=1, verbose=1)

    model.fit_generator(generatortrain, steps_per_epoch= 100, epochs= 30, validation_data= generatortest, validation_steps=len(generatortest), initial_epoch=0, callbacks=[Plotter(), checkpoint], workers=7, max_queue_size=20, class_weight= class_weight)

    model_new= load_model('../model_test.h5', custom_objects= {'AUC': tf.keras.metrics.AUC()})

> ValueError: Unknown metric function:auc

I have also tried following way:


    def auc(y_true, y_pred):

        return tf.keras.metrics.AUC()

    optimizer = SGD(lr=1e-3, decay=1e-4, momentum=0.9, nesterov=True)
    model.compile(optimizer=optimizer, loss='categorical_crossentropy', metrics=[auc, f1])


This gives me following error:

Failed to convert object of type <class 'tensorflow.python.keras.metrics.AUC'> to Tensor. Contents: <tensorflow.python.keras.metrics.AUC object at 0x7fd6f0ea7350>. Consider casting elements to a supported type.





【问题讨论】:

  • 请添加此代码使用的所有导入。
  • 我已经使用了所有的导入功能,但它仍然给我未知指标的错误。
  • 不,我们需要将该信息添加到您的问题中才能尝试回答它
  • 我已将信息添加到问题中

标签: tensorflow keras model metrics auc


【解决方案1】:
from keras.metrics import AUC

...

model.compile(loss='categorical_crossentropy', 
              optimizer=optimizer, 
              metrics=[AUC(name='auc')])

【讨论】:

    猜你喜欢
    • 2021-12-30
    • 1970-01-01
    • 2019-09-21
    • 1970-01-01
    • 2021-11-13
    • 1970-01-01
    • 2023-04-09
    • 2020-08-28
    • 1970-01-01
    相关资源
    最近更新 更多