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 в эквивалент в родном TensorFlow v2. Обратитесь к руководству по миграции TensorFlow v1 в TensorFlow v2 https://www.tensorflow.org/guide/migrate за инструкциями по миграции остальной части вашего кода.

С упразднением глобальных графов, 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
  • Изучение Swivel-встраиваний CORD-19 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