Spec-Zone.ru › TensorFlow 1.15

tf.compat.v2.estimator.LinearEstimator

Оценщик для линейных моделей TensorFlow с заданным пользователем заголовком.

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

tf.compat.v2.estimator.LinearEstimator(
    head, feature_columns, model_dir=None, optimizer='Ftrl', config=None,
    sparse_combiner='sum'
)

Пример:

categorical_column_a = categorical_column_with_hash_bucket(...)
categorical_column_b = categorical_column_with_hash_bucket(...)

categorical_feature_a_x_categorical_feature_b = crossed_column(...)

# Estimator using the default optimizer.
estimator = LinearEstimator(
    head=tf.contrib.estimator.multi_label_head(n_classes=3),
    feature_columns=[categorical_column_a,
                     categorical_feature_a_x_categorical_feature_b])

# Or estimator using an optimizer with a learning rate decay.
estimator = LinearEstimator(
    head=tf.contrib.estimator.multi_label_head(n_classes=3),
    feature_columns=[categorical_column_a,
                     categorical_feature_a_x_categorical_feature_b],
    optimizer=lambda: tf.keras.optimizers.Ftrl(
        learning_rate=tf.exponential_decay(
            learning_rate=0.1,
            global_step=tf.get_global_step(),
            decay_steps=10000,
            decay_rate=0.96))

# Or estimator using the FTRL optimizer with regularization.
estimator = LinearEstimator(
    head=tf.contrib.estimator.multi_label_head(n_classes=3),
    feature_columns=[categorical_column_a,
                     categorical_feature_a_x_categorical_feature_b])
    optimizer=tf.keras.optimizers.Ftrl(
        learning_rate=0.1,
        l1_regularization_strength=0.001
    ))

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
def input_fn_predict:
  # Returns tf.data.Dataset of (x, None) tuple.
  pass
estimator.train(input_fn=input_fn_train, steps=100)
metrics = estimator.evaluate(input_fn=input_fn_eval, steps=10)
predictions = estimator.predict(input_fn=input_fn_predict)

Вход train и evaluate должен иметь следующие особенности, в противном случае произойдёт KeyError:

  • если weight_column не None, признак с key=weight_column, значение которого является Tensor.
  • для каждого column в feature_columns:
    • если column является _CategoricalColumn, признак с key=column.name, значение которого является SparseTensor.
    • если column является _WeightedCategoricalColumn, два признака: первый с key именем столбца, второй с key именем столбца веса. Значение обоих признаков должно быть SparseTensor.
    • если column является _DenseColumn, признак с key=column.name, значение которого является Tensor.

Функция потерь и предсказанный результат определяются заданным заголовком.

Аргументы
head Экземпляр _Head, созданный с помощью метода, такого как tf.contrib.estimator.multi_label_head.
feature_columns Итерируемый объект, содержащий все столбцы признаков, используемые моделью. Все элементы набора должны быть экземплярами классов, производными от FeatureColumn.
model_dir Директория для сохранения параметров модели, графа и т.д. Это также можно использовать для загрузки контрольных точек из директории в оценщик для продолжения обучения ранее сохранённой модели.
optimizer Экземпляр tf.Optimizer, используемый для обучения модели. Также может быть строкой (одной из 'Adagrad', 'Adam', 'Ftrl', 'RMSProp', 'SGD') или вызываемым объектом. По умолчанию используется оптимизатор FTRL.
config Объект RunConfig для настройки параметров выполнения.
sparse_combiner Строка, определяющая способ уменьшения, если категориальный столбец многозначный. Одна из "mean", "sqrtn", "sum" — это эффективные способы нормирования на уровне примера, что может быть полезно для признаков «мешок слов». Более подробную информацию см. в tf.feature_column.linear_model.

Совместимость с Eager

Оценщики могут использоваться при включённом режиме eager execution. Обратите внимание, что input_fn и все хуки выполняются внутри контекста графа, поэтому их необходимо написать так, чтобы они были совместимы с режимом графа. Обратите внимание, что код input_fn с использованием tf.data обычно работает в режимах графа и eager.

Атрибуты
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 Функция, которая строит входные данные для оценки. См. Premade Estimators для получения дополнительной информации. Функция должна строить и возвращать один из следующих объектов: * Объект 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 в переданном режиме, чтобы сгенерировать граф модели на основе этих признаков и меток, и восстанавливает заданную контрольную точку (или, если её нет, последнюю контрольную точку) в графе. Только один из режимов используется для сохранения переменных в 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'}.

END_OF_DOCUMENT_MARKER
Аргументы
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.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 для полной документации.

Аргументы
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 Если модель ещё не создала чекпоинт.

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). Смотрите Предварительно подготовленные оценители для получения дополнительной информации. Функция должна создавать и возвращать одно из следующего:
  • Объект tf.data.Dataset: Выходы Dataset объекта должны иметь те же ограничения, что и ниже.
  • признаки: 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 возвращает некоторые тензоры, первая размерность которых не равна размеру партии.

data-text="Возвращает:" id="yields" tabindex="0">Возвращает:

Вычисленные значения 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/r1.15/api_docs/python/tf/compat/v2/estimator/LinearEstimator

Spec-Zone.ru

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