【发布时间】: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