Spec-Zone.ru › TensorFlow

tf.compat.v1.train.create_global_step

Создает тензор глобального шага в графе.

tf.compat.v1.train.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.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/api_docs/python/tf/compat/v1/train/create_global_step

Spec-Zone.ru

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