Использование Tensorflow, чтобы сделать аргумент предсказания отсутствующим - PullRequest
0 голосов
/ 20 февраля 2020

Я пытаюсь загрузить свою обученную модель, чтобы сделать прогноз, но я получаю ошибку (см. Ниже), когда я звоню model.predict(). Модель была обучена на 2 графических процессорах с использованием MirroredStrategy(). Может кто-нибудь сказать мне, почему я получаю эту ошибку?

код:

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'

1 Ответ

0 голосов
/ 20 февраля 2020

Вы должны предсказывать, исходя из "вашей модели", а не из "классовой" модели.

model.predict(norm_images, verbose=1)

Подсказка: поскольку вы не компилируете, вам не нужны custom_objects, потому что они Вы все связаны с потерей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...