tf.random.set_random_seed
Устанавливает глобальное для графа случайное семя для стандартного графа.
tf.random.set_random_seed(
seed
)
Операции, которые полагаются на случайное семя, фактически получают его из двух семян: глобального для графа и локального для операции. Это устанавливает глобальное для графа семя.
Его взаимодействие с локальными семенами операций выглядит следующим образом:
- Если не установлено ни глобальное для графа, ни локальное для операции семя: для этой операции используется случайное семя.
- Если установлено глобальное для графа семя, но не установлено локальное семя операции: система детерминированно выбирает локальное семя операции в сочетании с глобальным для графа семенем, чтобы получить уникальную последовательность случайных чисел.
- Если не установлено глобальное для графа семя, но установлено локальное семя операции: используется значение по умолчанию для глобального для графа семени и указанное локальное семя операции для определения последовательности случайных чисел.
- Если установлены и глобальное для графа, и локальное для операции семена: оба семени используются совместно для определения последовательности случайных чисел.
Чтобы проиллюстрировать видимые для пользователя эффекты, рассмотрите эти примеры:
Для генерации разных последовательностей в разных сессиях не устанавливайте ни глобальное для графа, ни локальное для операции семена:
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 | целое число. |
© 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/random/set_random_seed