tf.compat.v1.keras.estimator.model_to_estimator
Создаёт экземпляр Estimator из заданной модели Keras.
tf.compat.v1.keras.estimator.model_to_estimator(
keras_model=None, keras_model_path=None, custom_objects=None, model_dir=None,
config=None, checkpoint_format='saver', metric_names_map=None,
export_outputs=None
)
Если вы используете инфраструктуру или другие инструменты, которые полагаются на Estimators, вы по-прежнему можете создать модель Keras и использовать model_to_estimator для преобразования модели Keras в Estimator для использования в системах нижнего уровня.
Пример использования см. в разделе: Создание estimators из моделей Keras.
Веса образцов:
Estimators, возвращаемые model_to_estimator, сконфигурированы так, чтобы они могли обрабатывать веса образцов (подобно keras_model.fit(x, y, sample_weights)).
Чтобы передать веса образцов при обучении или оценке Estimator, первый элемент, возвращаемый функцией ввода, должен быть словарем с ключами features и sample_weights. Пример ниже:
keras_model = tf.keras.Model(...)
keras_model.compile(...)
estimator = tf.keras.estimator.model_to_estimator(keras_model)
def input_fn():
return dataset_ops.Dataset.from_tensors(
({'features': features, 'sample_weights': sample_weights},
targets))
estimator.train(input_fn, steps=1)
Пример с настроенной сигнатурой экспорта:
inputs = {'a': tf.keras.Input(..., name='a'),
'b': tf.keras.Input(..., name='b')}
outputs = {'c': tf.keras.layers.Dense(..., name='c')(inputs['a']),
'd': tf.keras.layers.Dense(..., name='d')(inputs['b'])}
keras_model = tf.keras.Model(inputs, outputs)
keras_model.compile(...)
export_outputs = {'c': tf.estimator.export.RegressionOutput,
'd': tf.estimator.export.ClassificationOutput}
estimator = tf.keras.estimator.model_to_estimator(
keras_model, export_outputs=export_outputs)
def input_fn():
return dataset_ops.Dataset.from_tensors(
({'features': features, 'sample_weights': sample_weights},
targets))
estimator.train(input_fn, steps=1)
| Аргументы | |
|---|---|
keras_model | Объект скомпилированной модели Keras. Этот аргумент взаимоисключающий с keras_model_path. model_fn Estimator использует структуру модели для клонирования модели. По умолчанию None. |
keras_model_path | Путь к сохранённой на диске скомпилированной модели Keras в формате HDF5, которую можно сгенерировать с помощью метода save() модели Keras. Этот аргумент взаимоисключающий с keras_model. По умолчанию None. |
custom_objects | Словарь для клонирования настроенных объектов. Это используется с классами, которые не входят в этот пакет pip. Например, если пользователь поддерживает класс relu6, который наследуется от tf.keras.layers.Layer, то передайте custom_objects={'relu6': relu6}. По умолчанию None. |
model_dir | Директория для сохранения параметров модели Estimator, графа, файлов сводки для TensorBoard и т. д. Если не задано, будет создана директория с именем tempfile.mkdtemp |
config | RunConfig для конфигурации Estimator. Позволяет настроить вещи в model_fn на основе конфигурации, такой как num_ps_replicas, или model_dir. По умолчанию None. Если оба config.model_dir и аргумент model_dir (выше) заданы, аргумент model_dir имеет приоритет. |
checkpoint_format | Устанавливает формат контрольной точки, сохранённой Estimator при обучении. Может быть saver или checkpoint, в зависимости от того, нужно ли сохранять контрольные точки из tf.train.Saver или tf.train.Checkpoint. Этот аргумент сейчас по умолчанию saver. Когда выйдет версия 2.0, значение по умолчанию будет checkpoint. Estimators используют контрольные точки с именами tf.train.Saver, тогда как модели Keras используют контрольные точки на основе объектов из tf.train.Checkpoint. В настоящее время сохранение контрольных точек на основе объектов из model_to_estimator поддерживается только моделями Functional и Sequential. По умолчанию «saver». |
metric_names_map | Необязательный словарь, сопоставляющий имена метрик выходных данных модели Keras с настроенными именами. Это можно использовать для переопределения значений по умолчанию имён метрик выходных данных модели Keras в случае модели с несколькими входами/выходами и предоставления настроенных имён для eval_metric_ops в Estimator. Имена метрик модели Keras можно получить с помощью model.metrics_names , исключая любые метрики потерь, такие как общие потери и потери выходных данных. Например, если ваша модель Keras имеет два выходных значения out_1 и out_2, с потерей mse и метрикой acc, то model.metrics_names будет ['loss', 'out_1_loss', 'out_2_loss', 'out_1_acc', 'out_2_acc']. Имена метрик модели, исключая метрики потерь, будут ['out_1_acc', 'out_2_acc']. |
export_outputs | Необязательный словарь. Его можно использовать для переопределения значений по умолчанию экспортов выходных данных модели Keras в случае модели с несколькими входами/выходами и предоставления настроенных имён для export_outputs в tf.estimator.EstimatorSpec. Значение по умолчанию — None, что эквивалентно {'serving_default': tf.estimator.export.PredictOutput}. Если не равно None, ключи должны совпадать с ключами model.output_names. Словарь {name: output}, где:
|
| Возвращаемое значение | |
|---|---|
| Estimator, созданный из заданной модели Keras. |
| Исключения | |
|---|---|
ValueError | Если не задан ни keras_model, ни keras_model_path. |
ValueError | Если заданы и keras_model, и keras_model_path. |
ValueError | Если keras_model_path является URI GCS. |
ValueError | Если модель keras не скомпилирована. |
ValueError | Если задан недопустимый checkpoint_format. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/compat/v1/keras/estimator/model_to_estimator