tf.contrib.estimator.export_all_saved_models
Экспортирует запрошенные графики обучения/валидации/предсказания как отдельные SavedModel. (устарело)
tf.contrib.estimator.export_all_saved_models(
estimator, export_dir_base, input_receiver_fn_map, assets_extra=None,
as_text=False, checkpoint_path=None
)
См. tf.contrib.estimator.export_all_saved_models для текущей версии этой функции.
Для каждого режима, переданного через input_receiver_fn_map, этот метод создаёт новый граф, вызывая input_receiver_fn для получения признаков и меток Tensor. Далее, этот метод вызывает Estimator's model_fn в переданном режиме для генерации графа модели на основе этих признаков и меток, и восстанавливает заданный контрольный пункт (или, если его нет, последний контрольный пункт) в граф. Только один из режимов используется для сохранения переменных в SavedModel (порядок предпочтения: ОБУЧЕНИЕ, ВАЛИДАЦИЯ, затем ПРЕДСКАЗАНИЕ), таким образом, до трёх MetaGraphDefs сохраняются с одним набором переменных в одном каталоге SavedModel.
Для предсказания экспортируемые MetaGraphDef будут предоставлять по одному SignatureDef для каждого элемента словаря export_outputs, возвращённого модельной функцией model_fn, с использованием тех же ключей. Один из этих ключей всегда signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY, обозначающий, какая сигнатура будет обслуживаться, когда запрос обслуживания не указывает её. Для каждой сигнатуры выходы предоставляются соответствующими ExportOutputs, а входные данные всегда являются входными приемниками, предоставленными serving_input_receiver_fn.
Для обучения и валидации train_op хранится в дополнительном наборе коллекций, а потеря, метрики и прогнозы включаются в SignatureDef для рассматриваемого режима.
Дополнительные ресурсы могут быть записаны в SavedModel через аргумент assets_extra. Это должен быть словарь, где каждый ключ задаёт путь назначения (включая имя файла) относительно каталога assets.extra. Соответствующее значение задаёт полный путь исходного файла, который должен быть скопирован. Например, простой случай копирования одного файла без переименования задаётся как {'my_asset_file.txt': '/path/to/my_asset_file.txt'}.
Пример использования:
classifier = tf.estimator.LinearClassifier(
feature_columns=[age, language])
classifier.train(input_fn=input_fn)
feature_spec = {
'age': tf.placeholder(dtype=tf.int64),
'language': array_ops.placeholder(dtype=tf.string)
}
label_spec = tf.placeholder(dtype=dtypes.int64)
train_rcvr_fn = tf.contrib.estimator.build_raw_supervised_input_receiver_fn(
feature_spec, label_spec)
serve_rcvr_fn = tf.estimator.export.build_parsing_serving_input_receiver_fn(
feature_spec)
rcvr_fn_map = {
model_fn_lib.ModeKeys.TRAIN: train_rcvr_fn,
model_fn_lib.ModeKeys.PREDICT: serve_rcvr_fn,
}
export_dir = tf.contrib.estimator.export_all_saved_models(
classifier,
export_dir_base='my_model/',
input_receiver_fn_map=rcvr_fn_map)
# export_dir is a directory with SavedModels, which can be used for serving,
# analysis with TFMA, or directly loaded in.
with ops.Graph().as_default() as graph:
with session.Session(graph=graph) as sess:
loader.load(sess, [tag_constants.TRAINING], export_dir)
weights = graph.get_tensor_by_name('linear/linear_model/age/weights')
...
| Аргументы | |
|---|---|
estimator | экземпляр tf.estimator.Estimator |
export_dir_base | Строка, содержащая каталог, в котором создавать подкаталоги с отметками времени, содержащие экспортированные SavedModels. |
input_receiver_fn_map | Словарь из tf.estimator.ModeKeys к input_receiver_fn отображениям, где input_receiver_fn — это функция, которая не принимает аргументы и возвращает соответствующий подкласс InputReceiver. |
assets_extra | Словарь, определяющий, как заполнить каталог assets.extra в экспортированном SavedModel, или None если дополнительные ресурсы не нужны. |
as_text | флаг для записи протокола SavedModel в текстовом формате. |
checkpoint_path | Путь к контрольному пункту для экспорта. Если None (по умолчанию), выбирается последний контрольный пункт, найденный в каталоге модели. |
| Возвращает | |
|---|---|
| Путь к экспортированному каталогу. |
| Возможные исключения | |
|---|---|
ValueError | если какой-либо input_receiver_fn равен None, нет export_outputs или не найден контрольный пункт. |
© 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/r1.15/api_docs/python/tf/contrib/estimator/export_all_saved_models