Spec-Zone.ru › TensorFlow 2.4

tf.estimator.BaselineEstimator

Просмотреть исходный код на GitHub

Эстиматор, который может установить простую базу.

Наследуется от: Estimator, Estimator

tf.estimator.BaselineEstimator(
    head, model_dir=None, optimizer='Ftrl', config=None
)

Эстиматор использует заданный пользователем хэд.

Этот эстиматор игнорирует значения признаков и будет учиться предсказывать среднее значение каждого метки. Например, для задач классификации с одной меткой это будет предсказывать распределение вероятностей классов, как это видно в метках. Для задач классификации с множественными метками это будет предсказывать отношение примеров, содержащих каждый класс.

Пример:

# Build baseline multi-label classifier.
estimator = tf.estimator.BaselineEstimator(
    head=tf.estimator.MultiLabelHead(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.estimator.MultiLabelHead.
model_dir Директория для сохранения параметров модели, графа и т. д. Это также можно использовать для загрузки контрольных точек из директории в эстиматор для продолжения обучения ранее сохранённой модели.
optimizer Строка, объект tf.keras.optimizers.* или вызываемая функция, создающая оптимизатор для обучения. Если не указано, будет использован Ftrl в качестве стандартного оптимизатора.
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 — метка tf.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 Строка, содержащая директорию, в которой создавать временные поддиректории, содержащие экспортированные SavedModel.
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 Строка, содержащая директорию, в которой будут созданы поддиректории с отметкой времени, содержащие экспортированные 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 не работает. См.: вопрос/20506

Аргументы
input_fn Функция, которая строит признаки. Предсказание продолжается до тех пор, пока input_fn не вызовет исключение конца входных данных (tf.errors.OutOfRangeError или StopIteration). См. Предопределённые Estimators для получения дополнительной информации. Функция должна строить и возвращать одно из следующего:
  • tf.data.Dataset объект — Выходы Dataset объекта должны иметь те же ограничения, что и ниже.
  • features — A tf.Tensor или словарь имен признаков (строка) к Tensor. Признаки используются model_fn. Они должны соответствовать ожиданиям model_fn от входных данных.
  • Кортеж, в этом случае первый элемент извлекается как признаки.
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 Функция, которая предоставляет входные данные для обучения в виде мини-пакетов. См. Предопределенные оценщики для получения дополнительной информации. Функция должна создавать и возвращать один из следующих элементов:
  • Объект tf.data.Dataset: Выходные данные объекта Dataset должны быть кортежем (features, labels) с теми же ограничениями, что и ниже.
  • Кортеж (features, labels): где features — tf.Tensor или словарь имен признаков типа строка к Tensor, а labels — Tensor или словарь имен меток типа строка к Tensor . И features, и labels используются model_fn. Они должны удовлетворять ожиданиям model_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/r2.4/api_docs/python/tf/estimator/BaselineEstimator

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API