#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. Спасибо! Это помогает многое понять. Сделал выше и теперь понимаю намного лучше.