Не удается загрузить модель с помощью custom_object (в другом файле) в Google Colab

#python #keras #google-colaboratory #metrics #custom-object

#python #keras #google-colaboratory #показатели #пользовательский объект

Вопрос:

Я обучил CNN и сохранил его на своем Google Диске, теперь я пытаюсь загрузить его и протестировать с другим набором данных, однако у меня возникают проблемы с его загрузкой с помощью custom_objects.

Мой код:

 from google.colab import drive
drive.mount('/content/drive')

import tensorflow as tf
import keras
newmodel =  tf.keras.models.load_model('/content/drive/My Drive/Programa2/New_UNet.h5', custom_objects={'Metrics.dice_coef':Metrics.dice_coef,'Metrics.precision':Metrics.precision, 'Metrics.sensitivity':Metrics.sensitivity,'Metrics.specificity':Metrics.specificity})


# compile the model
newmodel.compile(optimizer='adam',
              loss='binary_crossentropy',
              metrics=['accuracy',Metrics.dice_coef,Metrics.precision,Metrics.sensitivity,Metrics.specificity])

newmodel.summary()
  

Сообщение об ошибке:

 NameError                                 Traceback (most recent call last)
<ipython-input-13-d14ae084fec6> in <module>()
      4 import tensorflow as tf
      5 import keras
----> 6 newmodel =  tf.keras.models.load_model('/content/drive/My Drive/Programa2/New_UNet.h5', custom_objects={'Metrics.dice_coef':Metrics.dice_coef,'Metrics.precision':Metrics.precision, 'Metrics.sensitivity':Metrics.sensitivity,'Metrics.specificity':Metrics.specificity})
      7 
      8 

NameError: name 'Metrics' is not defined
  

Metrics — это другой файл кода с функциями metrics, созданный для оценки сегментации, он находится в той же папке диска, что и другие файлы, которые я использую.

Заранее спасибо!

Ответ №1:

Проблема решена, поскольку метрики не нужны для прогнозирования, их можно было загрузить с помощью:

 newmodel =  tf.keras.models.load_model('/content/drive/My Drive/Programa2/newmodel.h5',compile=False)