Рабочий процесс вывода модели глубокого обучения
Для вывода модели для приложений глубокого обучения Azure Databricks рекомендует использовать следующий рабочий процесс. Например, записные книжки, использующие TensorFlow и PyTorch, приведены в статье Примеры вывода модели глубокого обучения.
Отправляйте данные в таблицы данных Spark. В зависимости от типа данных Azure Databricks рекомендует использовать следующие способы загрузки данных:
- Файлы изображений (JPG, PNG): загрузите пути к изображениям в таблицу данных Spark. Загрузка изображений и предварительная обработка входных данных выполняется в пользовательских функциях Pandas.
files_df = spark.createDataFrame(map(lambda path: (path,), file_paths), ["path"])
- TFRecords: загрузите данные с помощью spark-tensorflow-connector.
df = spark.read.format("tfrecords").load(image_path)
- Такие источники данных, как Parquet, CSV, JSON, JDBC и другие метаданные: загрузите данные с помощью источников данных Spark.
Выполнение вывода модели с помощью определяемых пользователем pandas UDF. Пользовательские функции pandas используют Apache Arrow для передачи данных и pandas для работы с данными. Ниже приведены основные шаги рабочего процесса вывода модели с использованием пользовательских функций Pandas.
- Загрузка обученной модели: для повышения эффективности Azure Databricks рекомендует транслировать значения веса модели из драйвера и загрузить граф модели, чтобы получить значения веса из транслируемых переменных в пользовательской функции Pandas.
- Загрузка и предварительная обработка входных данных: чтобы загрузить данные в пакеты, Azure Databricks рекомендует использовать API tf.data для TensorFlow и класс DataLoader для PyTorch. Оба варианта также поддерживают предварительную выборку и многопотоковую загрузку, чтобы скрыть задержку при привязке операций ввода-вывода.
- Прогнозирование модели: выполнение вывода модели в пакете данных.
- Отправка прогнозов обратно Spark DataFrames: соберите результаты прогнозирования и верните их как
pd.Series
.
Примеры вывода модели глубокого обучения
Примеры в этом разделе соответствуют рекомендуемому рабочему процессу вывода при углубленном обучении. В этих примерах показано, как выполнить вывод модели с помощью предварительно обученной модели нейронной сети с глубокими остаточными сетями (ResNets).