Spec-Zone.ru › TensorFlow

tf.compat.v1.train.get_or_create_global_step

Возвращает глобальный тензор шага и при необходимости создаёт его.

tf.compat.v1.train.get_or_create_global_step(
    graph=None
)

Переход на TF2

Внимание: Этот API разработан для TensorFlow v1. Продолжайте чтение, чтобы узнать, как перейти с этого API на эквивалентный встроенный API TensorFlow v2. Инструкции по переносу остальной части кода см. в руководстве по переходу с TensorFlow v1 на TensorFlow v2.

После отказа от глобальных графов TF больше не отслеживает переменные в коллекциях. Другими словами, в TF2 нет глобальных переменных. Поэтому функции глобального шага были удалены (get_or_create_global_step, create_global_step, get_global_step) . Для перехода доступны два варианта:

  1. Создайте оптимизатор Keras, который создаёт переменную iterations. Эта переменная автоматически увеличивается при вызове apply_gradients.
  2. Создайте и увеличивайте tf.Variable вручную.

Ниже приведён пример перехода от использования глобального шага к использованию оптимизатора Keras:

Определите фиктивную модель и функцию потерь:

def compute_loss(x):
  v = tf.Variable(3.0)
  y = x * v
  loss = x * 5 - x * v
  return loss, [v]

До перехода:

g = tf.Graph()
with g.as_default():
  x = tf.compat.v1.placeholder(tf.float32, [])
  loss, var_list = compute_loss(x)
  global_step = tf.compat.v1.train.get_or_create_global_step()
  global_init = tf.compat.v1.global_variables_initializer()
  optimizer = tf.compat.v1.train.GradientDescentOptimizer(0.1)
  train_op = optimizer.minimize(loss, global_step, var_list)
sess = tf.compat.v1.Session(graph=g)
sess.run(global_init)
print("before training:", sess.run(global_step))
before training: 0
sess.run(train_op, feed_dict={x: 3})
print("after training:", sess.run(global_step))
after training: 1

Переход на оптимизатор Keras:

optimizer = tf.keras.optimizers.SGD(.01)
print("before training:", optimizer.iterations.numpy())
before training: 0
with tf.GradientTape() as tape:
  loss, var_list = compute_loss(3)
  grads = tape.gradient(loss, var_list)
  optimizer.apply_gradients(zip(grads, var_list))
print("after training:", optimizer.iterations.numpy())
after training: 1

Описание

Используется в блокнотах

Используется в руководстве Используется в учебных материалах
  • Перенос контрольных точек модели
  • Отладка перенесённого на TensorFlow 2 конвейера обучения
  • Обучение на нескольких рабочих узлах с помощью Estimator
  • Checkpointer и PolicySaver
  • Изучение векторных представлений CORD-19 Swivel из TF-Hub
  • Регрессия со смешанными линейными эффектами в {TF Probability, R, Stan}
  • Структурированное обучение нейронных сетей на основе графов в TFX
Аргументы
graph Граф, в котором создаётся глобальный тензор шага. Если он не указан, используется граф по умолчанию.
Возвращает
Глобальный тензор шага.

© 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/get_or_create_global_step

Spec-Zone.ru

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