tf.contrib.learn.Experiment
Experiment — класс, содержащий всю необходимую информацию для обучения модели.
tf.contrib.learn.Experiment(
estimator, train_input_fn, eval_input_fn, eval_metrics=None, train_steps=None,
eval_steps=100, train_monitors=None, eval_hooks=None, local_eval_frequency=None,
eval_delay_secs=120, continuous_eval_throttle_secs=60, min_eval_frequency=None,
delay_workers_by_global_step=False, export_strategies=None,
train_steps_per_iteration=None, checkpoint_and_export=False,
saving_listeners=None, check_interval_secs=5
)
ЭТОТ КЛАСС УСТАРЕЛ. См. contrib/learn/README.md для общих инструкций по миграции.
После создания эксперимента (путем передачи оценщика и входных данных для обучения и оценки), экземпляр Experiment знает, как вызывать циклы обучения и оценки разумным способом для распределенного обучения.
| Аргументы | |
|---|---|
estimator | Объект, реализующий интерфейс Estimator, который может быть комбинацией tf.contrib.learn.Trainable и tf.contrib.learn.Evaluable (устарело), или tf.estimator.Estimator. |
train_input_fn | функция, возвращающая признаки и метки для обучения. |
eval_input_fn | функция, возвращающая признаки и метки для оценки. Если eval_steps равно None, это должно быть настроено только для генерации конечного числа батчей (обычно, 1 эпоха данных оценки). |
eval_metrics | dict строк, функция метрики. Если None, используется набор по умолчанию. Это должно быть None , если estimator является tf.estimator.Estimator. Если метрики указаны, они будут добавлены к набору по умолчанию. |
train_steps | Выполнить столько шагов обучения. None, значение по умолчанию, означает обучение до бесконечности. |
eval_steps | evaluate продолжается до тех пор, пока входные данные не иссякнут (или не произойдет другое исключение), или для eval_steps шагов, если указано. |
train_monitors | Список мониторов, передаваемых в функцию Estimator's fit. |
eval_hooks | Список SessionRunHook хуков, передаваемых в функцию Estimator's evaluate. |
local_eval_frequency | (применимо только к local_run) Частота выполнения оценки в шагах. Если None, выполняет оценку только в конце обучения. |
eval_delay_secs | Начать оценку после ожидания столько секунд. |
continuous_eval_throttle_secs | Не переоценивать, если последняя оценка не начиналась не менее чем через столько секунд для continuous_eval(). |
min_eval_frequency | (применимо только к train_and_evaluate). минимальное количество шагов между оценками. Конечно, оценка не происходит, если нет нового снимка, следовательно, это минимум. Если 0, оценка произойдёт только после обучения. Если None, по умолчанию 1. Для предотвращения слишком частой проверки новых контрольных точек, интервал дополнительно ограничен значением не менее check_interval_secs между проверками. |
delay_workers_by_global_step | если True задерживает рабочие процессы обучения на основе глобального шага вместо времени. |
export_strategies | Итерируемый список ExportStrategy , или один, или None. |
train_steps_per_iteration | (применимо только к continuous_train_and_eval). Выполнить столько (целое) шагов обучения для каждой итерации обучения-оценки. При небольшом значении модель будет оцениваться чаще, и будет больше сохранённых контрольных точек. Если None, будет использоваться значение по умолчанию (которое меньше train_steps, если предоставлено). |
checkpoint_and_export | (применимо только к train_and_evaluate). Если True, выполняет промежуточные контрольные точки модели и экспорт в процессе обучения, а не только один раз по завершении обучения модели. Этот параметр является экспериментальным и может быть изменён или удалён в будущем. Установка этого параметра приводит к следующему: значение min_eval_frequency будет проигнорировано, а количество шагов между оценками и экспортом вместо этого будет определяться параметрами конфигурации оценщика save_checkpoints_secs и save_checkpoints_steps. Кроме того, этот параметр приводит к созданию CheckpointSaverHook по умолчанию вместо ValidationMonitor, поэтому предоставленный train_monitors необходимо соответствующим образом скорректировать. |
saving_listeners | список объектов CheckpointSaverListener. Используется tf.estimator.Estimator для обратных вызовов, которые выполняются непосредственно перед или после сохранения контрольных точек. |
check_interval_secs | Минимальное время между последующими проверками на наличие новой контрольной точки. Это в основном относится, если и min_eval_frequency, и время, затрачиваемое на каждый шаг обучения, невелики. |
| Возникающие исключения | |
|---|---|
ValueError | если estimator не реализует интерфейс Estimator, или если export_strategies имеет неправильный тип. |
| Атрибуты | |
|---|---|
estimator | |
eval_metrics | |
eval_steps | |
train_steps | |
Методы
continuous_eval
continuous_eval(
delay_secs=None, throttle_delay_secs=None, evaluate_checkpoint_only_once=True,
continuous_eval_predicate_fn=None, name='continuous'
)
continuous_eval_on_train_data
continuous_eval_on_train_data(
delay_secs=None, throttle_delay_secs=None, continuous_eval_predicate_fn=None,
name='continuous_on_train_data'
)
continuous_train_and_eval
continuous_train_and_eval(
continuous_eval_predicate_fn=None
)
Переключает обучение и оценку. (экспериментальный)
Частота оценки контролируется train_steps_per_iteration (через конструктор). Модель будет сначала обучена для train_steps_per_iteration, а затем будет оцениваться по очереди.
Этот метод предназначен для использования на одной машине.
Это отличается от train_and_evaluate следующим образом:
Процедура будет чередовать обучение и оценку. Модель будет обучена для определённого числа шагов (обычно меньше
train_steps, если указано), а затем оцениваться.train_and_evaluateбудет обучать модель дляtrain_steps(без мелких итераций обучения).Из-за другого подхода, который этот график использует, это приводит к двум различиям в управлении ресурсами. Во-первых, ресурсы (например, память), используемые для обучения, будут освобождены перед оценкой (
train_and_evaluateпотребляет вдвое больше ресурсов). Во-вторых, будет сохранено больше контрольных точек, так как контрольная точка генерируется в конце каждой итерации обучения.Поскольку estimator.train начинается с нуля (новая диаграмма, новые состояния для входа и т.д.) на каждой итерации, рекомендуется, чтобы
train_steps_per_iterationбыло больше. Также рекомендуется перемешивать ваши входные данные.
| Аргументы | |
|---|---|
continuous_eval_predicate_fn | Функция-предикат, определяющая, следует ли продолжать оценку после каждой итерации. У predicate_fn есть одна из следующих подписей:
|
| Возвращаемое значение | |
|---|---|
Кортеж результата вызова evaluate к Estimator и результатов экспорта с использованием указанных ExportStrategy. |
| Возникающие исключения | |
|---|---|
ValueError | если continuous_eval_predicate_fn не является ни None, ни вызываемой функцией. |
evaluate
evaluate(
delay_secs=None, name=None
)
Оценить на данных оценки.
Выполняет оценку на данных оценки и возвращает результат. Выполняется для self._eval_steps шагов, или если это None, затем выполняется до тех пор, пока входные данные не иссякнут или не произойдет другое исключение. Начать оценку после delay_secs секунд, или если это None, по умолчанию использовать self._eval_delay_secs секунд.
| Аргументы | |
|---|---|
delay_secs | Начать оценку после ожидания столько секунд. Если None, по умолчанию использовать self._eval_delays_secs. |
name | Присваивает имя оценке в случае, если для одного эксперимента выполняется несколько оценок. |
| Возвращаемое значение | |
|---|---|
Результат вызова evaluate к Estimator. |
extend_train_hooks
extend_train_hooks(
additional_hooks
)
Расширяет хуки обучения.
local_run
local_run()
УСТАРЕВШАЯ ФУНКЦИЯ
reset_export_strategies
reset_export_strategies(
new_export_strategies=None
)
Сбрасывает стратегии экспорта с помощью new_export_strategies.
| Аргументы | |
|---|---|
new_export_strategies | Новый список ExportStrategy или один элемент или None. |
| Возвращаемое значение | |
|---|---|
| Старые стратегии экспорта. |
run_std_server
run_std_server()
Запускает сервер TensorFlow и присоединяется к потоку обслуживания.
Обычно используется для серверов параметров.
| Исключения | |
|---|---|
ValueError | если в конфигурации оценщика недостаточно информации для создания сервера. |
test
test()
Тестирует обучение, оценку и экспорт оценщика за один шаг.
| Возвращаемое значение | |
|---|---|
Результат вызова evaluate к Estimator. |
train
train(
delay_secs=None
)
Обучает оценщик с использованием данных обучения.
Обучает оценщик в течение self._train_steps шагов после ожидания delay_secs секунд. Если self._train_steps равно None, обучение продолжается бесконечно.
| Аргументы | |
|---|---|
delay_secs | Начать обучение после этого количества секунд. |
| Возвращаемое значение | |
|---|---|
| Обученный оценщик. |
train_and_evaluate
train_and_evaluate()
Переплетает обучение и оценку.
Частота оценки регулируется аргументом конструктора min_eval_frequency. Когда этот параметр равен 0, оценка происходит только после завершения обучения. Обратите внимание, что оценка не может происходить чаще, чем создаются контрольные моменты. Если новые снимки недоступны, когда должна произойти оценка, то оценка не происходит в течение следующих min_eval_frequency шагов (предполагается, что контрольный момент доступен в этот момент). Таким образом, настройка min_eval_frequency на 1 означает, что модель будет оцениваться каждый раз, когда появляется новый контрольный момент.
Это особенно полезно для задачи «Мастер» в облаке, которая отвечает за создание контрольных моментов, оценку этих контрольных моментов и запись сводок. Участие в обучении в качестве надзирателя позволяет такой задаче выполнять первые и последние пункты, а выполнение оценки позволяет выполнить второй.
| Возвращаемое значение | |
|---|---|
Результат вызова evaluate к Estimator а также результаты экспорта, используя указанные ExportStrategy. |
© 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/contrib/learn/Experiment