В Tensorflow, есть ли способ установить начальное число на уровне сеанса? - PullRequest
3 голосов
/ 14 марта 2019

Я пытаюсь получить воспроизводимые результаты при запуске сеанса, но хочу свободно менять начальное число между сеансами.Примерно так:

a = tf.random_uniform([1])

#Set seed here to e.g. 123
with tf.Session() as sess:
   print(sess.run(a)) #Output: A1
   print(sess.run(a)) #Output: A2

#Set seed here to e.g. 42
with tf.Session() as sess:
   print(sess.run(a)) #Output: A3
   print(sess.run(a)) #Output: A4

#Set seed here to e.g. 123
with tf.Session() as sess:
   print(sess.run(a)) #Output: A1
   print(sess.run(a)) #Output: A2

Если я правильно понял страницу set_random_seed , кажется, что метод устанавливает начальное значение на уровне графика, поэтому между сеансами результаты будут одинаковыми.На самом деле, согласно этой странице, кажется возможным:

  • Сделать цикл не воспроизводимым
  • Сделать воспроизводимые отдельные операции без возможности переключения между сеансами (путем установки seedоперации непосредственно)
  • Сделать все операции воспроизводимыми, без возможности переключения между сеансами (с помощью set_random_seed)

Я не мог найти какой-либо способ гибко изменить начальное число без необходимостивосстановить график.Любые указатели на правильное решение будут высоко оценены.

...