Эта страница была переведа с помощью Cloud Translation API.
Switch to English

Импорт модели Keras в TensorFlow.js

Модели Keras (обычно создаваемые с помощью Python API) могут быть сохранены в одном из нескольких форматов . Формат «всей модели» можно преобразовать в формат слоев TensorFlow.js, который можно загрузить непосредственно в TensorFlow.js для вывода или для дальнейшего обучения.

Целевой формат слоев model.json - это каталог, содержащий файл model.json и набор файлов сегментированных весов в двоичном формате. Файл model.json содержит как топологию модели (также model.json как «архитектура» или «граф»: описание слоев и того, как они связаны), так и манифест файлов весов.

Требования

Для процедуры преобразования требуется среда Python; вы можете сохранить изолированный, используя pipenv или virtualenv . Чтобы установить конвертер, используйте pip install tensorflowjs .

Импорт модели Keras в TensorFlow.js - это двухэтапный процесс. Сначала преобразуйте существующую модель Keras в формат слоев TF.js, а затем загрузите ее в TensorFlow.js.

Шаг 1. Преобразование существующей модели Keras в формат слоев TF.js

Модели model.save(filepath) обычно сохраняются через model.save(filepath) , который создает один файл HDF5 (.h5), содержащий топологию модели и веса. Чтобы преобразовать такой файл в формат слоев TF.js, выполните следующую команду, где path/to/my_model.h5 - это исходный файл Keras .h5, а path/to/tfjs_target_dir - целевой выходной каталог для файлов TF.js:

# bash

tensorflowjs_converter --input_format keras \
                       path/to/my_model.h5 \
                       path/to/tfjs_target_dir

Альтернатива: используйте Python API для прямого экспорта в формат слоев TF.js.

Если у вас есть модель Keras в Python, вы можете экспортировать ее непосредственно в формат слоев TensorFlow.js следующим образом:

# Python

import tensorflowjs as tfjs

def train(...):
    model = keras.models.Sequential()   # for example
    ...
    model.compile(...)
    model.fit(...)
    tfjs.converters.save_keras_model(model, tfjs_target_dir)

Шаг 2: Загрузите модель в TensorFlow.js

Используйте веб-сервер для обслуживания преобразованных файлов модели, созданных на шаге 1. Обратите внимание, что вам может потребоваться настроить сервер, чтобы разрешить совместное использование ресурсов между источниками (CORS) , чтобы разрешить выборку файлов в JavaScript.

Затем загрузите модель в TensorFlow.js, указав URL-адрес файла model.json:

// JavaScript

import * as tf from '@tensorflow/tfjs';

const model = await tf.loadLayersModel('https://foo.bar/tfjs_artifacts/model.json');

Теперь модель готова для вывода, оценки или повторного обучения. Например, загруженную модель можно сразу использовать для прогнозирования:

// JavaScript

const example = tf.fromPixels(webcamElement);  // for example
const prediction = model.predict(example);

Многие примеры TensorFlow.js используют этот подход, используя предварительно обученные модели, которые были преобразованы и размещены в Google Cloud Storage.

Обратите внимание, что вы ссылаетесь на всю модель, используя имя файла model.json . loadModel(...) извлекает model.json , а затем выполняет дополнительные HTTP (S) -запросы для получения файлов model.json весов, model.json манифесте веса model.json . Этот подход позволяет кэшировать все эти файлы в браузере (и, возможно, на дополнительных серверах кеширования в Интернете), потому что model.json из model.json и веса меньше, чем типичный предел размера файла кеша. Таким образом, в последующих случаях модель, вероятно, будет загружаться быстрее.

Поддерживаемые функции

В настоящее время слои TensorFlow.js поддерживают только модели Keras, использующие стандартные конструкции Keras. Модели, использующие неподдерживаемые операции или слои - например, пользовательские слои, слои Lambda, пользовательские потери или пользовательские метрики - не могут быть автоматически импортированы, потому что они зависят от кода Python, который нельзя надежно перевести в JavaScript.