Насколько я понимаю, set seed используется для установки начальной позиции генератора случайных чисел. Поэтому первый отпечаток является первой случайной униформой с начальным числом 1234, в то время как второй отпечаток является второй случайной униформой с начальным числом 1234. Для нового сеанса начальное число снова будет установлено равным 1234.
Set seed обычно используется, чтобы гарантировать, что вы получаете одинаковые сценарии на разных прогонах и на другом оборудовании. Иначе было бы очень сложно и разочаровывать код поиска ошибок с ошибками, зависящими от случайных генераторов.
В качестве примера мы можем начать два разных сеанса и проверить, что они одинаковы:
import tensorflow as tf
tf.compat.v1.random.set_random_seed(1234)
a = tf.random.uniform([1])
print('session 1')
with tf.compat.v1.Session() as sess1:
print(sess1.run(a)) # generates 'A1'
print(sess1.run(a)) # generates 'A1'
print('session 2')
with tf.compat.v1.Session() as sess1:
print(sess1.run(a)) # generates 'A1'
print(sess1.run(a)) # generates 'A1'
>> session 1
>> [0.96046877]
>> [0.8362156]
>> session 2
>> [0.96046877]
>> [0.8362156]
Как и предполагалось, оба сеанса дают одинаковый вывод.
И вы должны получить те же результаты, если вы попробуете это на своем компьютере.
Это пример того, как установить начальное значение между сеансами. Вместо того, чтобы установить случайное начальное число на уровне сеанса, кажется, невозможно на сегодняшний день?
Более подробное обсуждение этого вопроса см. В комментарии к этому вопросу