Spec-Zone.ru › TensorFlow 1.15

tf.compat.v2.random.set_seed

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

tf.compat.v2.random.set_seed(
    seed
)

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

Взаимодействие с локальными сидами операций выглядит следующим образом:

  1. Если ни глобальный, ни локальный сид не заданы: для этой операции используется случайный сид.
  2. Если глобальный сид задан, но локальный нет: система детерминированно выбирает локальный сид в сочетании с глобальным сидом, чтобы получить уникальную последовательность случайных чисел.
  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.random.set_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'
Args
seed целое число.

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/compat/v2/random/set_seed

Spec-Zone.ru

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