使用 Tensorflow 进行预测缺失参数

Using Tensorflow to make a prediction missing argument

我正在尝试加载训练有素的模型来进行预测,但是当我调用 model.predict() 时出现错误(见下文)。该模型使用 MirroredStrategy() 在 2 个 GPU 上进行训练。谁能告诉我为什么会出现此错误?

代码:

from tensorflow.keras.models import load_model
from tensorflow.keras import backend as K

smooth = 1
def dice_coef(y_true, y_pred):
    y_true_f = K.flatten(y_true)
    y_pred_f = K.flatten(y_pred)
    intersection = K.sum(y_true_f * y_pred_f)
    return (2. * intersection + smooth) / (K.sum(y_true_f) + K.sum(y_pred_f) + smooth)

def dice_coef_loss(y_true, y_pred):
    return -dice_coef(y_true, y_pred)

model = load_model('test_model', compile = False, custom_objects = {'dice_coef_loss': dice_coef_loss, 'dice_coef': dice_coef})

prediction = model.predict(norm_images, verbose = 1)

错误:

AttributeError: 'Model' object has no attribute 'loss'

您必须根据 "your model",而不是 "class" 模型进行预测。

model.predict(norm_images, verbose=1)

提示:因为你没有编译,所以不需要 custom_objects,因为它们都与损失有关。