tf.compat.v2.estimator.BaselineEstimator
Оценщик, позволяющий установить простой базисный уровень.
Наследуется от: Estimator
tf.compat.v2.estimator.BaselineEstimator(
head, model_dir=None, optimizer='Ftrl', config=None
)
Оценщик использует указанный пользователем заголовок.
Этот оценщик игнорирует значения признаков и будет учиться прогнозировать среднее значение каждого метки. Например, для задач классификации с одной меткой это будет прогнозировать распределение вероятностей по классам, как видно из меток. Для задач классификации с множественными метками это будет прогнозировать отношение примеров, содержащих каждый класс.
Пример:
# Build baseline multi-label classifier.
estimator = BaselineEstimator(
head=tf.contrib.estimator.multi_label_head(n_classes=3))
# Input builders
def input_fn_train:
# Returns tf.data.Dataset of (x, y) tuple where y represents label's class
# index.
pass
def input_fn_eval:
# Returns tf.data.Dataset of (x, y) tuple where y represents label's class
# index.
pass
# Fit model.
estimator.train(input_fn=input_fn_train)
# Evaluates cross entropy between the test and train labels.
loss = estimator.evaluate(input_fn=input_fn_eval)["loss"]
# For each class, predicts the ratio of training examples that contain the
# class.
predictions = estimator.predict(new_samples)
Входные данные train и evaluate должны иметь следующие признаки, в противном случае произойдёт KeyError:
- если
weight_columnуказан в конструктореhead(и не равен None) для заголовка, переданного в конструктор BaselineEstimator, то признак сkey=weight_column, значение которого являетсяTensor.
| Аргументы | |
|---|---|
head | Экземпляр _Head, созданный с помощью метода, такого как tf.contrib.estimator.multi_label_head. |
model_dir | Директория для сохранения параметров модели, графа и т. д. Также может быть использована для загрузки контрольных точек из директории в оценщик для продолжения обучения ранее сохранённой модели. |
optimizer | Строка, объект tf.Optimizer или вызываемый объект, создающий оптимизатор для обучения. Если не указан, будет использоваться FtrlOptimizer с настройкой скорости обучения по умолчанию 0.3. |
config | Объект RunConfig для настройки параметров выполнения. |
| Атрибуты | |
|---|---|
config | |
export_savedmodel | |
model_dir | |
model_fn | Возвращает model_fn, который привязан к self.params . |
params | |
Методы
eval_dir
eval_dir(
name=None
)
Отображает имя директории, в которую сохраняются метрики оценки.
| Аргументы | |
|---|---|
name | Имя оценки, если пользователю нужно выполнить несколько оценок на разных наборах данных, например, на обучающих данных и тестовых данных. Метрики для разных оценок сохраняются в отдельных папках и отображаются отдельно в TensorBoard. |
| Возвращаемое значение | |
|---|---|
| Строка, представляющая путь к директории, содержащей метрики оценки. |
evaluate
evaluate(
input_fn, steps=None, hooks=None, checkpoint_path=None, name=None
)
Оценивает модель, используя данные для оценки input_fn.
На каждом шаге вызывается input_fn, которая возвращает одну партию данных. Оценка выполняется до:
-
Обработки
stepsпартий, или -
input_fnвызывает исключение конца входных данных (tf.errors.OutOfRangeErrorилиStopIteration).
| Аргументы | |
|---|---|
input_fn | Функция, которая строит входные данные для оценки. Подробнее см. Предопределённые оценщики. Функция должна строить и возвращать один из следующих вариантов: * Объект tf.data.Dataset: Выходные данные объекта Dataset должны быть кортежем (features, labels) с теми же ограничениями, что и ниже. * Кортеж (features, labels): где features — tf.Tensor или словарь с именем признака в качестве строки и Tensor, а labels — Tensor или словарь с именем метки в качестве строки и Tensor. И features и labels используются model_fn. Они должны соответствовать ожиданиям model_fn от входных данных. |
steps | Количество шагов, на которых необходимо оценить модель. Если None, выполняется оценка до тех пор, пока input_fn не вызовет исключение конца входных данных. |
hooks | Список экземпляров подкласса tf.train.SessionRunHook. Используется для обратных вызовов внутри вызова оценки. |
checkpoint_path | Путь к конкретной контрольной точке для оценки. Если None, используется последняя контрольная точка в model_dir. Если в model_dir нет контрольных точек, оценка выполняется с новыми инициализированными Variables вместо восстановленных из контрольной точки. |
name | Имя оценки, если пользователю нужно выполнить несколько оценок на разных наборах данных, например, на обучающих данных и тестовых данных. Метрики для разных оценок сохраняются в отдельных папках и отображаются отдельно в TensorBoard. |
| Возвращаемое значение | |
|---|---|
Словарь, содержащий метрики оценки, указанные в model_fn с ключами по имени, а также запись global_step, которая содержит значение глобального шага, для которого была выполнена эта оценка. Для предопределённых оценщиков словарь содержит loss (средняя потеря на мини-парттию) и average_loss (средняя потеря на образец). Предопределённые классификаторы также возвращают accuracy. Предопределённые регрессоры также возвращают label/mean и prediction/mean. |
| Исключения | |
|---|---|
ValueError | Если steps <= 0 . |
experimental_export_all_saved_models
experimental_export_all_saved_models(
export_dir_base, input_receiver_fn_map, assets_extra=None, as_text=False,
checkpoint_path=None
)
Экспортирует SavedModel с tf.MetaGraphDefs для каждого запрошенного режима.
Для каждого режима, переданного через input_receiver_fn_map, этот метод создаёт новую диаграмму, вызывая input_receiver_fn для получения признаков и меток Tensor. Затем этот метод вызывает Estimator's model_fn в переданном режиме, чтобы сгенерировать граф модели на основе этих признаков и меток, и восстанавливает заданную контрольную точку (или, в её отсутствие, последнюю контрольную точку) в граф. Только один из режимов используется для сохранения переменных в SavedModel (порядок предпочтения: tf.estimator.ModeKeys.TRAIN, tf.estimator.ModeKeys.EVAL, затем tf.estimator.ModeKeys.PREDICT), так что до трёх tf.MetaGraphDefs сохраняются с одним набором переменных в одной директории SavedModel.
Для переменных и tf.MetaGraphDefs, создаётся временная директория экспорта ниже export_dir_base, и записывается SavedModel в неё, содержащий tf.MetaGraphDef для данного режима и его соответствующих сигнатур.
Для прогнозирования экспортированный MetaGraphDef предоставит один SignatureDef для каждого элемента словаря export_outputs, возвращённого из model_fn, используя те же ключи. Один из этих ключей всегда tf.saved_model.signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY, указывая, какая сигнатура будет обслуживаться, если запрос на обслуживание не указывает её. Для каждой сигнатуры выходные данные предоставляются соответствующими tf.estimator.export.ExportOutputs, а входные данные всегда являются получателями входных данных, предоставленными serving_input_receiver_fn.
Для обучения и оценки train_op хранится в дополнительном наборе, и потеря, метрики и прогнозы включаются в SignatureDef для данного режима.
Дополнительные ресурсы могут быть записаны в SavedModel через аргумент assets_extra. Это должен быть словарь, где каждый ключ даёт путь назначения (включая имя файла) относительно директории assets.extra. Соответствующее значение даёт полный путь к исходному файлу, который должен быть скопирован. Например, простой случай копирования одного файла без переименования задаётся как {'my_asset_file.txt': '/path/to/my_asset_file.txt'}.
| Аргументы | |
|---|---|
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 или не найден чекпоинт. |
export_saved_model
export_saved_model(
export_dir_base, serving_input_receiver_fn, assets_extra=None, as_text=False,
checkpoint_path=None, experimental_mode=ModeKeys.PREDICT
)
Экспортирует граф вывода в виде SavedModel в указанную директорию.
Для получения подробного руководства см. Использование SavedModel с Estimators.
Этот метод строит новый граф, сначала вызвав serving_input_receiver_fn для получения признаков Tensor и затем вызвав Estimator для генерации графа модели на основе этих признаков. Он восстанавливает указанный чекпоинт (или, при его отсутствии, последний чекпоинт) в этом графе в новой сессии. Наконец, он создаёт директорию экспорта с отметкой времени в указанной export_dir_base, и записывает в неё SavedModel с одним tf.MetaGraphDef, сохранённым из этой сессии.
Экспортированный MetaGraphDef предоставит по одному SignatureDef для каждого элемента словаря export_outputs, возвращённого model_fn, с использованием тех же ключей. Один из этих ключей всегда tf.saved_model.signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY, указывающий, какая сигнатура будет использоваться, когда запрос обслуживания не указывает её. Для каждой сигнатуры выходные данные предоставляются соответствующими tf.estimator.export.ExportOutput, а входные данные всегда — входными приемниками, предоставленными serving_input_receiver_fn.
Дополнительные ресурсы могут быть записаны в SavedModel с помощью аргумента assets_extra. Это должен быть словарь, где каждый ключ задаёт путь назначения (включая имя файла) относительно директории assets.extra. Соответствующее значение задаёт полный путь к исходному файлу, который будет скопирован. Например, простой случай копирования одного файла без переименования задаётся как {'my_asset_file.txt': '/path/to/my_asset_file.txt'}.
Параметр experimental_mode может быть использован для экспорта отдельного графа обучения/валидации/предсказания в виде SavedModel. См. experimental_export_all_saved_models для полной документации.
| Аргументы | |
|---|---|
export_dir_base | Строка, содержащая директорию, в которой создавать поддиректории с отметкой времени, содержащие экспортированные SavedModelы. |
serving_input_receiver_fn | Функция без аргументов, возвращающая tf.estimator.export.ServingInputReceiver или tf.estimator.export.TensorServingInputReceiver. |
assets_extra | Словарь, определяющий, как заполнить директорию assets.extra в экспортированном SavedModel, или None если дополнительные ресурсы не нужны. |
as_text | нужно ли записывать прото SavedModel в текстовом формате. |
checkpoint_path | Путь к чекпоинту для экспорта. Если None (по умолчанию), выбирается последний чекпоинт, найденный в директории модели. |
experimental_mode | Значение tf.estimator.ModeKeys, указывающее, какой режим будет экспортирован. Обратите внимание, что эта функция находится в стадии эксперимента. |
| Возвращаемые значения | |
|---|---|
| Строковый путь к экспортированной директории. |
| Исключения | |
|---|---|
ValueError | если не указан serving_input_receiver_fn, нет export_outputs или не найден чекпоинт. |
get_variable_names
get_variable_names()
Возвращает список всех имён переменных в этой модели.
| Возвращаемые значения | |
|---|---|
| Список имён. |
| Исключения | |
|---|---|
ValueError | Если Estimator ещё не создал чекпоинт. |
get_variable_value
get_variable_value(
name
)
Возвращает значение переменной, заданной именем.
| Аргументы | |
|---|---|
name | строка или список строк, имя тензора. |
| Возвращаемые значения | |
|---|---|
| Массив NumPy — значение тензора. |
| Исключения | |
|---|---|
ValueError | Если Estimator ещё не создал чекпоинт. |
latest_checkpoint
latest_checkpoint()
Находит имя файла последнего сохранённого файла чекпоинта в model_dir.
| Возвращаемые значения | |
|---|---|
Полный путь к последнему чекпоинту или None если чекпоинт не найден. |
predict
predict(
input_fn, predict_keys=None, hooks=None, checkpoint_path=None,
yield_single_examples=True
)
Возвращает предсказания для заданных признаков.
Обратите внимание, что переключение двух выходов predict не работает. См.: issue/20506
| Аргументы | |
|---|---|
input_fn | Функция, которая строит признаки. Предсказание продолжается до тех пор, пока input_fn не вызовет исключение конца входных данных (tf.errors.OutOfRangeError или StopIteration). Смотрите Предопределённые Estimators для получения дополнительной информации. Функция должна создавать и возвращать одно из следующего:
|
predict_keys | список str, имя ключей для предсказания. Используется, если tf.estimator.EstimatorSpec.predictions является dict. Если predict_keys используется, остальные предсказания будут отфильтрованы из словаря. Если None, возвращает все. |
hooks | Список экземпляров подклассов tf.train.SessionRunHook. Используется для обратного вызова внутри вызова предсказания. |
checkpoint_path | Путь к определённому чекпоинту для предсказания. Если None, используется последний чекпоинт в model_dir. Если чекпоинтов в model_dir нет, предсказание выполняется с новыми, инициализированными Variables вместо восстанавливаемых из чекпоинта. |
yield_single_examples | Если False, возвращает всю партию, как возвращается model_fn, вместо разложения партии на отдельные элементы. Это полезно, если model_fn возвращает тензоры, размер первой размерности которых не равен размеру партии. |
Возвращаемые значения:
Оценённые значения тензоров predictions.
| Исключения | |
|---|---|
ValueError | Если длина партии предсказаний не совпадает, и yield_single_examples является True. |
ValueError | Если есть конфликт между predict_keys и predictions. Например, если predict_keys не является None, но tf.estimator.EstimatorSpec.predictions не является dict. |
train
train(
input_fn, hooks=None, steps=None, max_steps=None, saving_listeners=None
)
Обучает модель с использованием обучающих данных input_fn.
| Аргументы | |
|---|---|
input_fn | Функция, предоставляющая входные данные для обучения в виде мини-пакетов. См. Предопределённые оценщики для получения дополнительной информации. Функция должна создавать и возвращать один из следующих объектов:
|
hooks | Список экземпляров подклассов tf.train.SessionRunHook. Используется для обратных вызовов внутри цикла обучения. |
steps | Количество шагов для обучения модели. Если None, обучение продолжается бесконечно или до тех пор, пока input_fn не сгенерирует ошибку tf.errors.OutOfRange или исключение StopIteration. steps работает инкрементально. Если вы вызываете train(steps=10) дважды, обучение происходит в общей сложности 20 шагов. Если OutOfRange или StopIteration произойдут в середине, обучение остановится до 20 шагов. Если вы не хотите инкрементального поведения, установите max_steps вместо этого. Если установлено, max_steps должно быть None. |
max_steps | Общее количество шагов для обучения модели. Если None, обучение продолжается бесконечно или до тех пор, пока input_fn не сгенерирует ошибку tf.errors.OutOfRange или исключение StopIteration. Если установлено, steps должно быть None. Если OutOfRange или StopIteration произойдут в середине, обучение остановится до max_steps шагов. Два вызова train(steps=100) означают 200 итераций обучения. С другой стороны, два вызова train(max_steps=100) означают, что второй вызов не выполнит ни одной итерации, поскольку первый вызов выполнил все 100 шагов. |
saving_listeners | список объектов CheckpointSaverListener. Используется для обратных вызовов, выполняемых непосредственно перед или после сохранения контрольных точек. |
| Возвращает | |
|---|---|
self, для цепочки вызовов. |
| Исключения | |
|---|---|
ValueError | Если и steps и max_steps не являются None. |
ValueError | Если либо steps или max_steps <= 0. |
© 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/compat/v2/estimator/BaselineEstimator