使用 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
,因为它们都与损失有关。
我正在尝试加载训练有素的模型来进行预测,但是当我调用 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
,因为它们都与损失有关。