tf.estimator.BaselineRegressor
| Просмотреть исходный код на GitHub |
Регрессор, который может установить простую базу.
Наследуется от: Estimator
tf.estimator.BaselineRegressor(
model_dir=None, label_dimension=1, weight_column=None, optimizer='Ftrl',
config=None, loss_reduction=losses.Reduction.SUM
)
Этот регрессор игнорирует значения признаков и будет учиться предсказывать среднее значение каждого метки.
Пример:
# Build BaselineRegressor regressor = BaselineRegressor() # 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. regressor.train(input_fn=input_fn_train) # Evaluate squared-loss between the test and train targets. loss = regressor.evaluate(input_fn=input_fn_eval)["loss"] # predict outputs the mean value seen during training. predictions = regressor.predict(new_samples)
Вход train и evaluate должен иметь следующие признаки, иначе возникнет KeyError:
- если
weight_columnнеNone, признак сkey=weight_column, значение которого являетсяTensor.
| Аргументы | |
|---|---|
model_fn | Функция модели. Следует структуре:
|
model_dir | Директория для сохранения параметров модели, графа и т. д. Это также можно использовать для загрузки контрольных точек из директории в оценщик для продолжения обучения ранее сохранённой модели. Если PathLike объект, путь будет разрешён. Если None, model_dir в config будет использован, если задан. Если оба заданы, они должны быть одинаковы. Если оба None, будет использована временная директория. |
config | Объект конфигурации estimator.RunConfig. |
params | dict гиперпараметров, которые будут переданы в model_fn. Ключи - имена параметров, значения - базовые типы Python. |
warm_start_from | Необязательный строковый путь к контрольной точке или SavedModel для предварительной инициализации, или объект tf.estimator.WarmStartSettings для полной настройки предварительной инициализации. Если None, только TRAINABLE переменные инициализируются. Если предоставлен строковый путь, а не |
| Возможные исключения | |
|---|---|
ValueError | параметры model_fn не соответствуют params. |
ValueError | если это вызывается через подкласс и если этот подкласс переопределяет член Estimator. |
Совместимость с Eager
Оценщики могут использоваться при включённом режиме eager execution. Обратите внимание, что input_fn и все хуки выполняются внутри контекста графа, поэтому они должны быть написаны для совместимости с режимом графа. Обратите внимание, что input_fn код, использующий tf.data, как правило, работает в режимах графа и eager.
| Атрибуты | |
|---|---|
config | |
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.ExportOutput, а входные данные всегда — получатели входных данных, предоставляемые 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's model_fn для генерации графика модели на основе этих признаков. Он восстанавливает заданный контрольный пункт (или, если его нет, самый последний контрольный пункт) в этот граф в свежей сессии. В заключение он создаёт каталог экспорта с отметкой времени ниже указанного 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 | Строка, содержащая каталог, в котором будут созданы подкаталоги с отметкой времени, содержащие экспортированные SavedModels. |
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, или контрольный пункт не найден. |
export_savedmodel
export_savedmodel(
export_dir_base, serving_input_receiver_fn, assets_extra=None, as_text=False,
checkpoint_path=None, strip_default_attrs=False
)
Экспортирует график вывода в виде SavedModel в указанный каталог. (устаревшая функция)
Подробное руководство см. в Использование SavedModel с Estimators.
Этот метод создаёт новый граф, сначала вызывая serving_input_receiver_fn для получения признаков Tensor, а затем вызывая Estimator's model_fn для генерации графика модели на основе этих признаков. Он восстанавливает заданный контрольный пункт (или, если его нет, самый последний контрольный пункт) в этот граф в свежей сессии. В заключение он создаёт каталог экспорта с отметкой времени ниже указанного 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'}.
| Аргументы | |
|---|---|
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 (по умолчанию), выбирается самая последняя контрольная точка, найденная в каталоге модели. |
strip_default_attrs | Логическое значение. Если True, атрибуты с значениями по умолчанию будут удалены из NodeDefов. Подробное руководство см. в Удалении атрибутов со значениями по умолчанию. |
| Возвращаемое значение | |
|---|---|
| Путь к экспортированной директории. |
| Исключения | |
|---|---|
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 не работает. См.: вопрос/20506
| Аргументы | |
|---|---|
input_fn | Функция, которая строит признаки. Прогнозирование продолжается до тех пор, пока input_fn не сгенерирует исключение конца ввода (tf.errors.OutOfRangeError или StopIteration). Подробнее см. Предварительно настроенные оценщики. Функция должна создавать и возвращать одно из следующего:
|
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/estimator/BaselineRegressor