Spec-Zone.ru › TensorFlow

tf.compat.v1.set_random_seed

Устанавливает глобальное для графа случайное семя для стандартного графа.

Просмотр псевдонимов

Псевдонимы совместимости для миграции

См. Руководство по миграции для получения более подробной информации.

tf.compat.v1.random.set_random_seed

tf.compat.v1.set_random_seed(
    seed
)

Мигрировать в TF2

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

'tf.compat.v1.set_random_seed' совместим с режимом eager. Однако в режиме eager этот API установит глобальное семя вместо семени графа стандартного графа. В TF2 этот API изменён на tf.random.set_seed.

Описание

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

Используется в руководствах
  • Пример использования TensorFlow Constrained Optimization с набором данных CelebA
  • Прогнозирование токсичности комментариев на Вики
  • Построение модели смеси Дирихле с использованием предобусловленного стохастического градиентного ∇angevin динамики

Операции, которые полагаются на случайное семя, на самом деле получают его из двух семян: семени уровня графа и семени уровня операции. Это задаёт семя уровня графа.

Его взаимодействия с семенами уровня операции следующие:

  1. Если не установлено ни семя уровня графа, ни семя уровня операции: Для этой операции используется случайное семя.
  2. Если установлено семя уровня графа, но не установлено семя уровня операции: система детерминировано выбирает семя операции в совокупности с семеном уровня графа, чтобы получить уникальную последовательность случайных чисел. В рамках одной версии TensorFlow и кода пользователя эта последовательность детерминирована. Однако в разных версиях эта последовательность может измениться. Если код зависит от конкретных семян для работы, явно укажите и семя уровня графа, и семя уровня операции.
  3. Если семя уровня графа не установлено, но установлено семя уровня операции: используется значение по умолчанию для семени уровня графа и указанное семя операции для определения последовательности случайных чисел.
  4. Если установлены как семя уровня графа, так и семя уровня операции: оба семени используются совместно для определения последовательности случайных чисел.

Чтобы проиллюстрировать видимые для пользователя эффекты, рассмотрим эти примеры:

Для генерации разных последовательностей в разных сессиях не устанавливайте ни семя уровня графа, ни семя уровня операции:

a = tf.random.uniform([1])
b = tf.random.normal([1])

print("Session 1")
with tf.compat.v1.Session() as sess1:
  print(sess1.run(a))  # generates 'A1'
  print(sess1.run(a))  # generates 'A2'
  print(sess1.run(b))  # generates 'B1'
  print(sess1.run(b))  # generates 'B2'

print("Session 2")
with tf.compat.v1.Session() as sess2:
  print(sess2.run(a))  # generates 'A3'
  print(sess2.run(a))  # generates 'A4'
  print(sess2.run(b))  # generates 'B3'
  print(sess2.run(b))  # generates 'B4'

Чтобы сгенерировать одну и ту же повторяющуюся последовательность для операции в разных сессиях, установите семя для операции:

a = tf.random.uniform([1], seed=1)
b = tf.random.normal([1])

# Repeatedly running this block with the same graph will generate the same
# sequence of values for 'a', but different sequences of values for 'b'.
print("Session 1")
with tf.compat.v1.Session() as sess1:
  print(sess1.run(a))  # generates 'A1'
  print(sess1.run(a))  # generates 'A2'
  print(sess1.run(b))  # generates 'B1'
  print(sess1.run(b))  # generates 'B2'

print("Session 2")
with tf.compat.v1.Session() as sess2:
  print(sess2.run(a))  # generates 'A1'
  print(sess2.run(a))  # generates 'A2'
  print(sess2.run(b))  # generates 'B3'
  print(sess2.run(b))  # generates 'B4'

Чтобы сделать последовательности случайных чисел, генерируемые всеми операциями, повторяющимися в разных сессиях, установите семя уровня графа:

tf.compat.v1.random.set_random_seed(1234)
a = tf.random.uniform([1])
b = tf.random.normal([1])

# Repeatedly running this block with the same graph will generate the same
# sequences of 'a' and 'b'.
print("Session 1")
with tf.compat.v1.Session() as sess1:
  print(sess1.run(a))  # generates 'A1'
  print(sess1.run(a))  # generates 'A2'
  print(sess1.run(b))  # generates 'B1'
  print(sess1.run(b))  # generates 'B2'

print("Session 2")
with tf.compat.v1.Session() as sess2:
  print(sess2.run(a))  # generates 'A1'
  print(sess2.run(a))  # generates 'A2'
  print(sess2.run(b))  # generates 'B1'
  print(sess2.run(b))  # generates 'B2'
Аргументы
seed целое число.

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

Spec-Zone.ru

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