tf.compat.v1.train.Supervisor
Вспомогательный класс для обучения, который создает контрольные точки моделей и вычисляет сводки.
tf.compat.v1.train.Supervisor(
graph=None,
ready_op=USE_DEFAULT,
ready_for_local_init_op=USE_DEFAULT,
is_chief=True,
init_op=USE_DEFAULT,
init_feed_dict=None,
local_init_op=USE_DEFAULT,
logdir=None,
summary_op=USE_DEFAULT,
saver=USE_DEFAULT,
global_step=USE_DEFAULT,
save_summaries_secs=120,
save_model_secs=600,
recovery_wait_secs=30,
stop_grace_secs=120,
checkpoint_basename='model.ckpt',
session_manager=None,
summary_writer=USE_DEFAULT,
init_fn=None,
local_init_run_options=None
)
Этот класс устарел. Вместо него используйте tf.compat.v1.train.MonitoredTrainingSession.
Supervisor — это небольшая оболочка вокруг Coordinator, Saver и SessionManager, которая берет на себя выполнение общих задач программ обучения TensorFlow.
Использование в одной программе
with tf.Graph().as_default():
...add operations to the graph...
# Create a Supervisor that will checkpoint the model in '/tmp/mydir'.
sv = Supervisor(logdir='/tmp/mydir')
# Get a TensorFlow session managed by the supervisor.
with sv.managed_session(FLAGS.master) as sess:
# Use the session to train the graph.
while not sv.should_stop():
sess.run(<my_train_op>)
Внутри блока with sv.managed_session() все переменные графа инициализированы. Кроме того, запущено несколько служб для создания контрольных точек модели и добавления сводок в журнал событий.
Если программа аварийно завершится и будет запущена повторно, управляемый сеанс автоматически повторно инициализирует переменные из последней контрольной точки.
Supervisor получает уведомление о любом исключении, вызванном одной из служб. После вызова исключения should_stop() возвращает True. В этом случае цикл обучения тоже должен остановиться. Поэтому в цикле обучения нужно проверять sv.should_stop().
Исключения, указывающие на то, что входные данные для обучения исчерпаны, tf.errors.OutOfRangeError, также приводят к тому, что sv.should_stop() возвращает True, но не вызываются повторно из блока with: они указывают на нормальное завершение.
Использование для нескольких реплик
Для обучения с репликами одну и ту же программу развертывают в Cluster. Одна из задач должна быть назначена главной: эта задача отвечает за инициализацию, создание контрольных точек, сводки и восстановление. Остальные задачи используют службы, предоставляемые главной задачей.
Единственное изменение, необходимое в коде программы для одной реплики, — указать, выполняется ли программа как главная.
# Choose a task as the chief. This could be based on server_def.task_index,
# or job_def.name, or job_def.tasks. It's entirely up to the end user.
# But there can be only one *chief*.
is_chief = (server_def.task_index == 0)
server = tf.distribute.Server(server_def)
with tf.Graph().as_default():
...add operations to the graph...
# Create a Supervisor that uses log directory on a shared file system.
# Indicate if you are the 'chief'
sv = Supervisor(logdir='/shared_directory/...', is_chief=is_chief)
# Get a Session in a TensorFlow server on the cluster.
with sv.managed_session(server.target) as sess:
# Use the session to train the graph.
while not sv.should_stop():
sess.run(<my_train_op>)
В главной задаче Supervisor работает точно так же, как в первом примере выше. В остальных задачах sv.managed_session() ожидает инициализации модели, прежде чем вернуть сеанс коду обучения. Для инициализации модели не главные задачи зависят от главной задачи.
Если одна из задач аварийно завершится и будет запущена повторно, managed_session() проверит, инициализирована ли модель. Если да, он просто создаст сеанс и вернет его коду обучения, который продолжит работу в обычном режиме. Если модель необходимо инициализировать, главная задача выполнит ее повторную инициализацию; остальные задачи будут ждать, пока модель не будет инициализирована.
Примечание: Эта измененная программа по-прежнему корректно работает как одна программа. Одна программа назначает себя главной.
Какую строку master использовать
Независимо от того, запускаете ли вы программу на своем компьютере или в кластере, для флага --master можно использовать следующие значения:
Указание
''запрашивает внутрипроцессный сеанс, не использующий RPC.Указание
'local'запрашивает сеанс, использующий интерфейс RPC «Master» для выполнения программ TensorFlow. Подробнее см.tf.train.Server.create_local_server.Указание
'grpc://hostname:port'запрашивает сеанс, использующий интерфейс RPC для подключения к определенному узлу, а также позволяющий внутрипроцессному master обращаться к удаленным рабочим процессам TensorFlow. Часто уместно передатьserver.target(для некоторогоtf.distribute.Serverс именем `server).
Расширенное использование
Запуск дополнительных служб
managed_session() запускает службы Checkpoint и Summary (потоки). Если требуется запустить дополнительные службы, их можно запустить в блоке, управляемом managed_session().
Пример: запуск потока для вывода значений функции потерь. Нужно, чтобы этот поток выполнялся каждые 60 секунд, поэтому запустим его с помощью sv.loop().
...
sv = Supervisor(logdir='/tmp/mydir')
with sv.managed_session(FLAGS.master) as sess:
sv.loop(60, print_loss, (sess, ))
while not sv.should_stop():
sess.run(my_train_op)
Запуск меньшего числа служб
managed_session() запускает потоки «summary» и «checkpoint», которые используют либо переданные конструктору необязательные summary_op и saver, либо значения по умолчанию, автоматически созданные supervisor. Если требуется использовать собственную логику создания сводок и контрольных точек, отключите эти службы, передав None параметрам summary_op и saver.
Пример: создание сводок вручную каждые 100 шагов в главной задаче.
# Create a Supervisor with no automatic summaries.
sv = Supervisor(logdir='/tmp/mydir', is_chief=is_chief, summary_op=None)
# As summary_op was None, managed_session() does not start the
# summary thread.
with sv.managed_session(FLAGS.master) as sess:
for step in range(1000000):
if sv.should_stop():
break
if is_chief and step % 100 == 0:
# Create the summary every 100 chief steps.
sv.summary_computed(sess, sess.run(my_summary_op))
else:
# Train normally
sess.run(my_train_op)
Пользовательская инициализация модели
managed_session() поддерживает только инициализацию модели путем запуска init_op или восстановления из последней контрольной точки. Если требуется особая инициализация, см. описание того, как указать local_init_op при создании supervisor. Можно также напрямую использовать SessionManager для создания сеанса и проверки возможности автоматической инициализации.
| Аргументы | |
|---|---|
graph | Graph. Граф, который будет использовать модель. По умолчанию используется граф Graph. Перед созданием сеанса supervisor может добавить операции в граф, однако после передачи графа supervisor вызывающий код не должен его изменять. |
ready_op | Строковый Tensor одномерного вида. Этот тензор вычисляется supervisor в prepare_or_wait_for_session() для проверки готовности модели к использованию. Модель считается готовой, если возвращается пустой массив. По умолчанию используется тензор, возвращаемый функцией tf.compat.v1.report_uninitialized_variables(). Если None, готовность модели не проверяется. |
ready_for_local_init_op | Строковый Tensor одномерного вида. Этот тензор вычисляется supervisor в prepare_or_wait_for_session() для проверки готовности модели к выполнению local_init_op. Модель считается готовой, если возвращается пустой массив. По умолчанию используется None. Если None, готовность модели перед выполнением local_init_op не проверяется. |
is_chief | Если True, создается главный supervisor, отвечающий за инициализацию и восстановление модели. Если False, создается supervisor, который полагается на главного supervisor в вопросах инициализации и восстановления. |
init_op | Operation. Используется главными supervisor для инициализации модели, если ее невозможно восстановить. По умолчанию используется Operation, который инициализирует все глобальные переменные. Если None, автоматическая инициализация не выполняется, если не передано значение для init_fn (см. ниже). |
init_feed_dict | Словарь, сопоставляющий объекты Tensor со значениями для подачи на вход. Этот словарь подачи используется при вычислении init_op. |
local_init_op | Operation. Используется всеми supervisor для выполнения инициализаций, которые должны выполняться для каждого нового экземпляра supervisor. По умолчанию это инициализаторы таблиц и локальных переменных. Если None, автоматическая инициализация для каждого экземпляра supervisor не выполняется. |
logdir | Строка. Необязательный путь к каталогу для сохранения контрольных точек модели и записи событий для средства визуализации. Используется главными supervisor. Каталог будет создан, если он не существует. |
summary_op | Operation, возвращающий Summary для журналов событий. Используется главными supervisor, если указан logdir. По умолчанию используется операция, возвращаемая функцией summary.merge_all(). Если None, сводки не вычисляются автоматически. |
saver | Объект Saver. Используется главными supervisor, если указан logdir. По умолчанию используется сохраненный объект, возвращаемый функцией Saver(). Если None, модель не сохраняется автоматически. |
global_step | Целочисленный тензор размера 1 для подсчета шагов. Значение из 'global_step' используется в сводках и именах файлов контрольных точек. По умолчанию используется операция с именем 'global_step' в графе, если она существует, имеет ранг 1, размер 1 и тип tf.int32 или tf.int64. Если None, глобальный шаг не записывается в сводки и файлы контрольных точек. Используется главными supervisor, если указан logdir. |
save_summaries_secs | Интервал в секундах между вычислениями сводок для журнала событий. По умолчанию — 120 секунд. Передайте 0, чтобы отключить сводки. |
save_model_secs | Интервал в секундах между созданием контрольных точек модели. По умолчанию — 600 секунд. Передайте 0, чтобы отключить контрольные точки. |
recovery_wait_secs | Интервал в секундах между проверками готовности модели. Используется supervisor при ожидании инициализации или восстановления модели главным supervisor. По умолчанию — 30 секунд. |
stop_grace_secs | Время ожидания в секундах, предоставляемое работающим потокам для остановки при вызове stop(). По умолчанию — 120 секунд. |
checkpoint_basename | Базовое имя для сохранения контрольных точек. |
session_manager | SessionManager, который управляет созданием и восстановлением Session. Если это None, для обратной совместимости будет создан SessionManager по умолчанию с переданным набором аргументов. |
summary_writer | Используемый SummaryWriter или USE_DEFAULT. Может быть задано значение None, означающее, что сводки не следует записывать. |
init_fn | Необязательный вызываемый объект для инициализации модели. Вызывается после необязательного вызова init_op. Вызываемый объект должен принимать один аргумент — инициализируемый сеанс. |
local_init_run_options | RunOptions, передаваемый в качестве параметра SessionManager local_init_run_options. |
| Вызывает исключения | |
|---|---|
RuntimeError | Если вызвано при включенном eager execution. |
| Атрибуты | |
|---|---|
coord | Возвращает Coordinator, используемый Supervisor. Coordinator может быть полезен, если во время обучения требуется выполнять несколько потоков. |
global_step | Возвращает тензор global_step, используемый supervisor. |
init_feed_dict | Возвращает словарь подачи, используемый при вычислении init_op. |
init_op | Возвращает Init Op, используемый supervisor. |
is_chief | Возвращает True, если это главный supervisor. |
ready_for_local_init_op | |
ready_op | Возвращает Ready Op, используемый supervisor. |
save_model_secs | Возвращает интервал между контрольными точками. |
save_path | Возвращает путь сохранения, используемый supervisor. |
save_summaries_secs | Возвращает интервал между вычислениями сводок. |
saver | Возвращает Saver, используемый supervisor. |
session_manager | Возвращает SessionManager, используемый Supervisor. |
summary_op | Возвращает тензор Summary, используемый главным supervisor. |
summary_writer | Возвращает SummaryWriter, используемый главным supervisor. |
Методы
Loop
Loop(
timer_interval_secs, target, args=None, kwargs=None
)
Запускает LooperThread, периодически вызывающий функцию.
Если timer_interval_secs равно None, поток многократно вызывает target(*args, **kwargs). В противном случае он вызывает функцию каждые timer_interval_secs секунд. Поток завершается после запроса остановки.
Запущенный поток добавляется в список потоков, управляемых supervisor, поэтому передавать его методу stop() не требуется.
| Аргументы | |
|---|---|
timer_interval_secs | Число. Интервалы времени, в которые следует вызывать target. |
target | Вызываемый объект. |
args | Необязательные позиционные аргументы, передаваемые в target при вызове. |
kwargs | Необязательные именованные аргументы, передаваемые в target при вызове. |
| Возвращает | |
|---|---|
| Запущенный поток. |
PrepareSession
PrepareSession(
master='',
config=None,
wait_for_checkpoint=False,
max_wait_secs=7200,
start_standard_services=True
)
Проверяет, готова ли модель к использованию.
Создает сеанс на 'master', восстанавливая или инициализируя модель по мере необходимости, либо ожидает готовности сеанса. Если выполняется в качестве главной задачи и для start_standard_service задано значение True, также вызывает диспетчер сеансов для запуска стандартных служб.
| Аргументы | |
|---|---|
master | Имя используемого главного узла TensorFlow. О том, как оно интерпретируется, см. описание конструктора tf.compat.v1.Session. |
config | Необязательный прототип ConfigProto, используемый для настройки сеанса и передаваемый без изменений при его создании. |
wait_for_checkpoint | Нужно ли ожидать доступности контрольной точки перед созданием Session. По умолчанию False. |
max_wait_secs | Максимальное время ожидания доступности сеанса. |
start_standard_services | Нужно ли запускать стандартные службы и обработчики очередей. |
| Возвращает | |
|---|---|
| Объект Session, который можно использовать для управления моделью. |
RequestStop
RequestStop(
ex=None
)
Запрашивает у координатора остановку потоков.
См. Coordinator.request_stop().
| Аргументы | |
|---|---|
ex | Необязательный Exception или кортеж Python exc_info, возвращаемый функцией sys.exc_info(). Если это первый вызов request_stop(), соответствующее исключение сохраняется и повторно вызывается из join(). |
ShouldStop
ShouldStop()
Проверяет, получил ли координатор указание остановиться.
См. Coordinator.should_stop().
| Возвращает | |
|---|---|
| True, если координатору было указано остановиться, иначе False. |
StartQueueRunners
StartQueueRunners(
sess, queue_runners=None
)
Запускает потоки для QueueRunners.
Обратите внимание, что обработчики очередей, собранные в графе по ключу QUEUE_RUNNERS, уже запускаются автоматически при создании сеанса с помощью supervisor. Поэтому явный вызов этого метода не требуется, если не нужно запускать обработчики очередей, не собранные в графе.
| Аргументы | |
|---|---|
sess | Session. |
queue_runners | Список объектов QueueRunners. Если не задано, используется список обработчиков очередей, собранных в графе под ключом GraphKeys.QUEUE_RUNNERS. |
| Возвращает | |
|---|---|
Список потоков, запущенных для QueueRunners. |
| Вызывает исключения | |
|---|---|
RuntimeError | Если вызвано при включенном eager execution. |
Совместимость с eager execution
Очереди несовместимы с eager execution. Для получения данных при включенном eager execution используйте API tf.data.
StartStandardServices
StartStandardServices(
sess
)
Запускает стандартные службы для 'sess'.
Службы запускаются в фоновом режиме. Набор запускаемых служб зависит от параметров конструктора и может включать:
- Поток Summary, вычисляющий сводки каждые save_summaries_secs.
- Поток Checkpoint, сохраняющий модель каждые save_model_secs.
- Поток StepCounter, измеряющий время шага.
| Аргументы | |
|---|---|
sess | Сеанс Session. |
| Возвращает | |
|---|---|
Список потоков, выполняющих стандартные службы. Для их присоединения можно использовать Coordinator объекта Supervisor: sv.coord.Join(
|
| Вызывает исключения | |
|---|---|
RuntimeError | Если вызвано для не главного Supervisor. |
ValueError | Если конструктору не передан logdir, поскольку службам требуется каталог журналов. |
Stop
Stop(
threads=None, close_summary_writer=True, ignore_live_threads=False
)
Останавливает службы и координатор.
Сеанс при этом не закрывается.
| Аргументы | |
|---|---|
threads | Необязательный список потоков, которые следует присоединить к координатору. Если None, по умолчанию используются потоки стандартных служб, потоки, запущенные для QueueRunners, и потоки, запущенные методом loop(). Чтобы дождаться завершения дополнительных потоков, передайте их список этому параметру. |
close_summary_writer | Нужно ли закрыть summary_writer. По умолчанию — True, если средство записи сводок было создано supervisor, и False в противном случае. |
ignore_live_threads | Если True, игнорирует потоки, продолжающие работать по истечении льготного периода при ожидании их завершения через координатор, вместо вызова RuntimeError. |
StopOnException
StopOnException()
Обработчик контекста, останавливающий supervisor при возникновении исключения.
См. Coordinator.stop_on_exception().
| Возвращает | |
|---|---|
| Обработчик контекста. |
SummaryComputed
SummaryComputed(
sess, summary, global_step=None
)
Указывает, что сводка была вычислена.
| Аргументы | |
|---|---|
sess | Объект Session. |
summary | Прототип Summary или строка с сериализованным прототипом сводки. |
global_step | Целое число. Глобальный шаг, к которому относится эта сводка. Если None, будет предпринята попытка получить текущий шаг. |
| Вызывает исключения | |
|---|---|
TypeError | Если 'summary' не является прототипом Summary или строкой. |
RuntimeError | Если Supervisor создан без logdir. |
WaitForStop
WaitForStop()
Блокирует выполнение, ожидая остановки координатора.
loop
loop(
timer_interval_secs, target, args=None, kwargs=None
)
Запускает LooperThread, периодически вызывающий функцию.
Если timer_interval_secs равно None, поток многократно вызывает target(*args, **kwargs). В противном случае он вызывает функцию каждые timer_interval_secs секунд. Поток завершается после запроса остановки.
Запущенный поток добавляется в список потоков, управляемых supervisor, поэтому передавать его методу stop() не требуется.
| Аргументы | |
|---|---|
timer_interval_secs | Число. Интервалы времени, в которые следует вызывать target. |
target | Вызываемый объект. |
args | Необязательные позиционные аргументы, передаваемые в target при вызове. |
kwargs | Необязательные именованные аргументы, передаваемые в target при вызове. |
| Возвращает | |
|---|---|
| Запущенный поток. |
managed_session
@contextlib.contextmanager
managed_session(
master='',
config=None,
start_standard_services=True,
close_summary_writer=True
)
Возвращает менеджер контекста для управляемого сеанса.
Этот менеджер контекста создает сеанс и автоматически восстанавливает его при необходимости. При необходимости он запускает стандартные службы для работы с контрольными точками и сводками. Он отслеживает исключения, возникающие в блоке with или в службах, и при необходимости останавливает supervisor.
Менеджер контекста обычно используется следующим образом:
def train():
sv = tf.compat.v1.train.Supervisor(...)
with sv.managed_session(<master>) as sess:
for step in range(..):
if sv.should_stop():
break
sess.run(<my training op>)
...do other things needed at each training step...
Исключение, возникшее в блоке with или в одном из потоков служб, повторно вызывается при выходе из блока. Это происходит после остановки всех потоков и закрытия сеанса. Например, исключение AbortedError, возникающее при вытеснении одного из рабочих процессов распределенной модели, повторно вызывается при выходе из блока.
Если при вытеснении нужно повторить цикл обучения, это можно сделать следующим образом:
def main(...):
while True
try:
train()
except tf.errors.Aborted:
pass
В особом случае исключения, используемые для управления потоком выполнения, например OutOfRangeError, сообщающее об исчерпании входных очередей, не вызываются повторно из блока with: они указывают на штатное завершение цикла обучения и считаются нормальным завершением.
| Аргументы | |
|---|---|
master | Имя используемого главного узла TensorFlow. О том, как оно интерпретируется, см. описание конструктора tf.compat.v1.Session. |
config | Необязательный прототип ConfigProto, используемый для настройки сеанса. Передается без изменений при создании сеанса. |
start_standard_services | Нужно ли запускать стандартные службы, например службы контрольных точек, сводок и счетчика шагов. |
close_summary_writer | Нужно ли закрыть средство записи сводок при закрытии сеанса. По умолчанию True. |
| Возвращает | |
|---|---|
Контекстный менеджер, который возвращает Session, восстановленный из последней контрольной точки или инициализированный с нуля, если контрольных точек нет. Сеанс закрывается при выходе из блока with. |
prepare_or_wait_for_session
prepare_or_wait_for_session(
master='',
config=None,
wait_for_checkpoint=False,
max_wait_secs=7200,
start_standard_services=True
)
Убедитесь, что модель готова к использованию.
Создайте сеанс на 'master', восстановив или инициализировав модель при необходимости, либо дождитесь готовности сеанса. Если вы работаете в роли главного узла и для start_standard_service установлено значение True, также вызовите диспетчер сеансов, чтобы запустить стандартные службы.
| Аргументы | |
|---|---|
master | Имя главного узла TensorFlow, который нужно использовать. О том, как оно интерпретируется, см. в конструкторе tf.compat.v1.Session. |
config | Необязательный объект ConfigProto, используемый для настройки сеанса; он передается без изменений при создании сеанса. |
wait_for_checkpoint | Следует ли ожидать появления контрольной точки перед созданием сеанса. По умолчанию False. |
max_wait_secs | Максимальное время ожидания готовности сеанса. |
start_standard_services | Нужно ли запускать стандартные службы и обработчики очередей. |
| Возвращает | |
|---|---|
| Объект Session, который можно использовать для управления моделью. |
request_stop
request_stop(
ex=None
)
Запросить у координатора остановку потоков.
См. Coordinator.request_stop().
| Аргументы | |
|---|---|
ex | Необязательный объект Exception или кортеж Python exc_info, возвращаемый функцией sys.exc_info(). Если это первый вызов request_stop(), соответствующее исключение сохраняется и повторно вызывается из join(). |
should_stop
should_stop()
Проверить, получил ли координатор команду остановиться.
См. Coordinator.should_stop().
| Возвращает | |
|---|---|
| True, если координатор получил команду остановиться; в противном случае — False. |
start_queue_runners
start_queue_runners(
sess, queue_runners=None
)
Запустить потоки для QueueRunners.
Обратите внимание, что обработчики очередей, собранные в графе с ключом QUEUE_RUNNERS, запускаются автоматически при создании сеанса с помощью супервизора. Поэтому явно вызывать этот метод не нужно, если только не требуется запустить обработчики очередей, которые не были собраны.
| Аргументы | |
|---|---|
sess | Объект Session. |
queue_runners | Список объектов QueueRunners. Если он не указан, будет использоваться список обработчиков очередей, собранных в графе под ключом GraphKeys.QUEUE_RUNNERS. |
| Возвращает | |
|---|---|
Список потоков, запущенных для QueueRunners. |
| Вызывает исключения | |
|---|---|
RuntimeError | Если вызван при включенном eager execution. |
Совместимость с eager execution
Очереди несовместимы с eager execution. Чтобы загружать данные при включенном eager execution, используйте API tf.data.
start_standard_services
start_standard_services(
sess
)
Запустить стандартные службы для 'sess'.
Службы запускаются в фоновом режиме. Запускаемые службы зависят от параметров конструктора и могут включать:
- Поток Summary, вычисляющий сводки каждые save_summaries_secs.
- Поток Checkpoint, сохраняющий модель каждые save_model_secs.
- Поток StepCounter, измеряющий время выполнения шага.
| Аргументы | |
|---|---|
sess | Объект Session. |
| Возвращает | |
|---|---|
Список потоков, выполняющих стандартные службы. Чтобы дождаться завершения этих потоков, можно использовать координатор супервизора: sv.coord.Join(
|
| Вызывает исключения | |
|---|---|
RuntimeError | Если вызван для супервизора, не являющегося главным. |
ValueError | Если при вызове конструктора не был передан logdir, так как службам необходим каталог для журналов. |
stop
stop(
threads=None, close_summary_writer=True, ignore_live_threads=False
)
Остановить службы и координатор.
Этот метод не закрывает сеанс.
| Аргументы | |
|---|---|
threads | Необязательный список потоков, для которых координатор должен дождаться завершения. Если указано None, по умолчанию используются потоки стандартных служб, потоки, запущенные для QueueRunners, и потоки, запущенные методом loop(). Чтобы дождаться завершения дополнительных потоков, передайте их список в этом параметре. |
close_summary_writer | Нужно ли закрывать summary_writer. По умолчанию используется True, если модуль записи сводок создан супервизором, и False в противном случае. |
ignore_live_threads | Если True, игнорирует потоки, которые продолжают работать после льготного периода ожидания их завершения через координатор, вместо вызова RuntimeError. |
stop_on_exception
stop_on_exception()
Обработчик контекста для остановки супервизора при возникновении исключения.
См. Coordinator.stop_on_exception().
| Возвращает | |
|---|---|
| Обработчик контекста. |
summary_computed
summary_computed(
sess, summary, global_step=None
)
Указать, что сводка была вычислена.
| Аргументы | |
|---|---|
sess | Объект Session. |
summary | Объект Summary proto или строка с сериализованным Summary proto. |
global_step | Целое число: глобальный шаг, к которому относится эта сводка. Если указано None, будет предпринята попытка получить текущий шаг. |
| Вызывает исключения | |
|---|---|
TypeError | если 'summary' не является объектом Summary proto или строкой. |
RuntimeError | если супервизор создан без logdir. |
wait_for_stop
wait_for_stop()
Заблокировать выполнение до остановки координатора.
| Переменные класса | |
|---|---|
| USE_DEFAULT | 0 |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/compat/v1/train/Supervisor