Spec-Zone.ru › TensorFlow 2.9

tf.compat.v1.train.create_global_step

Создание тензора глобальной ступени в графе.

tf.compat.v1.train.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.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

Описание

Аргументы
graph Граф, в котором необходимо создать тензор глобальной ступени. Если отсутствует, используется по умолчанию.
Возвращаемое значение
Тензор глобальной ступени.
Исключения
ValueError если тензор глобальной ступени уже определен.

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

Spec-Zone.ru

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