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-интерфейс «Интерфейс мастера» для запуска программ TensorFlow. Подробнее см.tf.train.Server.create_local_server.Указание
'grpc://hostname:port'запрашивает сессию, которая использует интерфейс RPC к определённому хосту, а также позволяет мастеру в процессе получать доступ к удалённым рабочим узлам TensorFlow. Часто уместно передатьserver.target(для некоторогоtf.distribute.Serverс именем `server`).
Расширенное использование
Запуск дополнительных служб
managed_session() запускает службы «Контрольные точки» и «Сводки» (потоки). Если вам необходимо запустить больше служб, вы можете просто запустить их в блоке, контролируемом 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_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 | Граф, который будет использовать модель. По умолчанию — стандартный граф. 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 | Функция, возвращающая 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, который управляет созданием и восстановлением сессии. Если это None, будет создан стандартный SessionManager с набором аргументов, переданных для обеспечения обратной совместимости. |
summary_writer | Используемый SummaryWriter или USE_DEFAULT. Может быть None для указания того, что сводки не должны записываться. |
init_fn | Необязательная функция, используемая для инициализации модели. Вызывается после необязательного вызова init_op. Функция должна принимать один аргумент — сессию, которая инициализируется. |
local_init_run_options | RunOptions, которые должны быть переданы в качестве параметра SessionManager local_init_run_options. |
| Возбуждает | |
|---|---|
RuntimeError | Если вызвана с включённым выполнением eager. |
| Атрибуты | |
|---|---|
coord | Возвращает координатор, используемый надзирателем. Координатор может быть полезен, если вы хотите запустить несколько потоков во время обучения. |
global_step | Возвращает тензор global_step, используемый надзирателем. |
init_feed_dict | Возвращает словарь данных, используемый при оценке init_op. |
init_op | Возвращает оператор Init, используемый надзирателем. |
is_chief | Возвращает True, если это главный надзиратель. |
ready_for_local_init_op | |
ready_op | Возвращает оператор Ready, используемый надзирателем. |
save_model_secs | Возвращает задержку между контрольными точками. |
save_path | Возвращает путь сохранения, используемый надзирателем. |
save_summaries_secs | Возвращает задержку между вычислениями сводок. |
saver | Возвращает Saver, используемый надзирателем. |
session_manager | Возвращает SessionManager, используемый надзирателем. |
summary_op | Возвращает тензор Summary, используемый главным надзирателем. |
summary_writer | Возвращает SummaryWriter, используемый главным надзирателем. |
Методы
Loop
Loop(
timer_interval_secs, target, args=None, kwargs=None
)
Запускает LooperThread, который периодически вызывает функцию.
Если timer_interval_secs равно None, поток вызывает target(*args, **kwargs) многократно. В противном случае он вызывает его каждые timer_interval_secs секунды. Поток завершается при запросе остановки.
Запущенный поток добавляется в список потоков, управляемых надзирателем, поэтому его не нужно передавать методу 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 master, который нужно использовать. См. конструктор tf.compat.v1.Session для того, как это интерпретируется. |
config | Необязательный протокол ConfigProto, используемый для конфигурирования сессии, который передаётся в create session как есть. |
wait_for_checkpoint | Нужно ли ожидать доступности контрольной точки перед созданием сессии. По умолчанию False. |
max_wait_secs | Максимальное время ожидания готовности сессии. |
start_standard_services | Нужно ли запускать стандартные службы и исполнители очередей. |
| Возвращает | |
|---|---|
| Объект Session, который можно использовать для управления моделью. |
RequestStop
RequestStop(
ex=None
)
Запросить остановку потоков координатором.
См. Coordinator.request_stop().
| Аргументы | |
|---|---|
ex | Необязательное исключение, или кортеж Python, как возвращается sys.exc_info(). Если это первый вызов request_stop(), соответствующее исключение записывается и повторно генерируется в join(). |
ShouldStop
ShouldStop()
Проверить, было ли указано координатору остановиться.
См. Coordinator.should_stop().
| Возвращает | |
|---|---|
| True, если координатору было указано остановиться, False в противном случае. |
StartQueueRunners
StartQueueRunners(
sess, queue_runners=None
)
Запустить потоки для QueueRunners.
Обратите внимание, что исполнители очередей, собранные в ключе графа QUEUE_RUNNERS, уже автоматически запускаются при создании сессии с надзирателем, поэтому если у вас нет дополнительных исполнителей очередей для запуска, вам не нужно вызывать это явно.
| Аргументы | |
|---|---|
sess | A Session. |
queue_runners | Список QueueRunners. Если не указан, используется список исполнителей очередей, собранных в графе под ключом GraphKeys.QUEUE_RUNNERS. |
| Возвращает | |
|---|---|
Список запущенных потоков для QueueRunners. |
| Возможные исключения | |
|---|---|
RuntimeError | Если вызвана с включённым eager выполнением. |
совместимость с eager
Очереди несовместимы с eager выполнением. Для получения данных при включённом eager выполнении используйте API tf.data.
StartStandardServices
StartStandardServices(
sess
)
Запустить стандартные службы для 'sess'.
Это запускает службы в фоновом режиме. Запускаемые службы зависят от параметров конструктора и могут включать:
- Поток сводок, вычисляющий сводки каждые save_summaries_secs.
- Поток контрольных точек, сохраняющий модель каждые save_model_secs.
- Поток StepCounter, измеряющий время шага.
| Аргументы | |
|---|---|
sess | A Session. |
| Возвращает | |
|---|---|
Список потоков, которые выполняют стандартные службы. Вы можете использовать Coordinator надзирателя для соединения этих потоков с помощью: 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, если SummaryWriter был создан надзирателем, False в противном случае. |
ignore_live_threads | Если True игнорирует потоки, которые остаются запущенными после периода ожидания при объединении потоков через координатор, вместо повышения RuntimeError. |
StopOnException
StopOnException()
Обработчик контекста для остановки надзирателя при возникновении исключения.
См. Coordinator.stop_on_exception().
| Возвращает | |
|---|---|
| Обработчик контекста. |
SummaryComputed
SummaryComputed(
sess, summary, global_step=None
)
Указывает, что сводка была вычислена.
| Аргументы | |
|---|---|
sess | Объект Session. |
summary | Протокол Summary или строка, содержащая сериализованный протокол Summary. |
global_step | Целое число. Глобальный шаг, с которым связан этот Summary. Если 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 | Нужно ли ожидать наличия контрольной точки перед созданием Session. По умолчанию 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, автоматически запускаются при создании сессии с Supervisor, поэтому, если у вас нет не собранных исполнителей очередей для запуска, нет необходимости вызывать это явно.
| Аргументы | |
|---|---|
sess | Объект Session. |
queue_runners | Список QueueRunners. Если не указан, мы будем использовать список исполнителей очередей, собранных в графе под ключом GraphKeys.QUEUE_RUNNERS. |
| Возвращаемое значение | |
|---|---|
Список потоков, запущенных для QueueRunners. |
| Исключения | |
|---|---|
RuntimeError | Если вызывается с включённым выполнением eager. |
совместимость с eager
Очереди не совместимы с выполнением eager. Для приема данных при включенном выполнении eager используйте API tf.data.
start_standard_services
start_standard_services(
sess
)
Запуск стандартных служб для 'sess'.
Это запускает службы в фоновом режиме. Запускаемые службы зависят от параметров конструктора и могут включать:
- Поток Summary, вычисляющий сводки каждые save_summaries_secs.
- Поток Checkpoint, сохраняющий модель каждые save_model_secs.
- Поток StepCounter, измеряющий время шага.
| Аргументы | |
|---|---|
sess | Сессия. |
| Возвращаемое значение | |
|---|---|
| Список потоков, выполняющих стандартные службы. Вы можете использовать координатор 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, если запись суммарных данных была создана супервайзером, 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 или строка, содержащая сериализованный протокол Summary. |
global_step | Целое число. Глобальный шаг, с которым связана данная сводка. Если None, он попытается получить текущий шаг. |
| Исключения | |
|---|---|
TypeError | если 'summary' не является протоколом Summary или строкой. |
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/versions/r2.9/api_docs/python/tf/compat/v1/train/Supervisor