tf.estimator.BaselineClassifier
| Просмотреть исходный код на GitHub |
Классификатор, который может установить простой базовый уровень.
Наследуется от: Estimator
tf.estimator.BaselineClassifier(
model_dir=None, n_classes=2, weight_column=None, label_vocabulary=None,
optimizer='Ftrl', config=None, loss_reduction=losses.Reduction.SUM
)
Этот классификатор игнорирует значения признаков и будет учиться предсказывать среднее значение каждого метки. Для задач с одной меткой это будет предсказывать распределение вероятностей классов, как видно в метках. Для задач с множественной меткой это будет предсказывать долю примеров, которые являются положительными для каждого класса.
Пример:
# Build BaselineClassifier classifier = BaselineClassifier(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. classifier.train(input_fn=input_fn_train) # Evaluate cross entropy between the test and train labels. loss = classifier.evaluate(input_fn=input_fn_eval)["loss"] # predict outputs the probability distribution of the classes as seen in # training. predictions = classifier.predict(new_samples)
Входные данные train и evaluate должны иметь следующие признаки, в противном случае возникнет KeyError:
- если
weight_columnнеNone, признак сkey=weight_column, значение которого являетсяTensor.
| Аргументы | |
|---|---|
model_fn | Функция модели. Следует подписи:
|
model_dir | Директория для сохранения параметров модели, графа и т. д. Это также можно использовать для загрузки контрольных точек из каталога в оценщик, чтобы продолжить обучение ранее сохраненной модели. Если PathLike объект, путь будет разрешен. Если None, каталог модели в 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
Оценщики могут использоваться при включенной жадной вычислении. Обратите внимание, что input_fn и все хуки выполняются внутри контекста графа, поэтому их необходимо написать, чтобы они были совместимы с режимом графа. Обратите внимание, что код input_fn с использованием tf.data обычно работает как в режиме графа, так и в жадном режиме.
| Атрибуты | |
|---|---|
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.ExportOutputs, а входные данные всегда — входные приемники, предоставленные serving_input_receiver_fn.
Для обучения и оценки, train_op хранится в дополнительном наборе, а потеря, метрики и предсказания включаются в SignatureDef для рассматриваемого режима.
Дополнительные ресурсы могут быть записаны в SavedModel через аргумент assets_extra. Это должен быть словарь, где каждый ключ задаёт путь назначения (включая имя файла) относительно каталога assets.extra. Соответствующее значение даёт полный путь к исходному файлу, который нужно скопировать. Например, простой случай копирования одного файла без переименования задаётся как {'my_asset_file.txt': '/path/to/my_asset_file.txt'}.
| Args | |
|---|---|
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 (по умолчанию), выбирается последний найденный контрольный пункт в каталоге модели. |
| Returns | |
|---|---|
| Путь к экспортированному каталогу в виде строки. |
| Raises | |
|---|---|
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.ExportOutputs, а входные данные всегда — входные приемники, предоставляемые 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 для полной документации.
| Args | |
|---|---|
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, указывающее, какой режим будет экспортирован. Обратите внимание, что эта функция экспериментальная. |
| Returns | |
|---|---|
| Путь к экспортированному каталогу в виде строки. |
| Raises | |
|---|---|
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.ExportOutputs, а входные данные всегда — входные приемники, предоставляемые 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 | Если модель ещё не создала контрольный пункт. |
get_variable_value
get_variable_value(
name
)
Возвращает значение переменной по имени.
| Аргументы | |
|---|---|
name | Строка или список строк, имя тензора. |
| Возвращаемое значение | |
|---|---|
| Массив NumPy - значение тензора. |
| Исключения | |
|---|---|
ValueError | Если модель ещё не создала контрольный пункт. |
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/BaselineClassifier