Дает ли вам «из tensorflow.python.keras.models import load_model» функцию model.predict?

#tensorflow #keras

#tensorflow #keras

Вопрос:

Я только что успешно завершил обучение последовательной модели tf.keras и написал отдельный скрипт «Flask», в котором я загружаю сохраненную модель в приложение, которое я загрузил в Heroku. Все сработало. Но, когда я играл, я понял, что для моих требований мне нужно было импортировать только Flask, запрос из flask, а также pandas, numpy и из tensorflow.python.keras.models import load_model:

 from tensorflow.python.keras.models import load_model
from flask import Flask, request
import pandas as pd
import numpy as np
  

При всем этом model.predict работает (после запуска load_model() и необходимых преобразований pandas и numpy для получения данных Flask / Post в правильном формате (processed_features):

 preds = flask_model.predict(processed_features).flatten()
  

Что позволяет мне запускать model.predict()? Доступна ли model.predict() при импорте load_model (мне, очевидно, не пришлось использовать load_model для запуска model.predict для проверки моих тестовых данных после обучения)? Или model.predict () — это универсальная функция в python, numpy или pandas, которая знает, как выполнить прогноз с помощью модели keras (каким-то образом просто использует веса, смещения, форму модели)?

Хотя все работает, я думаю, что я не понимаю, как это работает.

Комментарии:

1. predict — это просто функция в классе model от Keras, источник находится здесь: github.com/keras-team/keras/blob/master/keras/engine /…

Ответ №1:

Сохраненная модель на диске имеет как архитектуру модели, так и веса. load_model API десериализует этот файл, создает и возвращает объект Keras Model. Итак, вы, по сути, вызываете predict() для объекта Keras Model. Вы можете проверить объект модели, вызвав следующие методы:

 type(flask_model)  #check the type
dir(flask_model)   #list the attributes/methods available
  

Комментарии:

1. Спасибо! Это помогает многое понять. Сделал выше и теперь понимаю намного лучше.