Я заблудился о том, как использовать tf.data.Dataset для распространения случайного состояния tf.random_uniform ().Следующий фрагмент кода тензорного потока говорит сам за себя:
import tensorflow as tf
import numpy as np
def fn1(x):
z = tf.random_uniform( () )
return x + z
d1 = tf.data.Dataset.from_tensor_slices(tf.zeros(100))
d2 = d1.map(fn1)
d3 = d2.map(lambda x:x)
d4 = tf.data.Dataset.zip( (d2,d3) )
it = d4.make_one_shot_iterator()
fetch = it.get_next()
with tf.Session() as sess:
while True:
X = sess.run(fetch)
if X[0] != X[1]:
raise RuntimeError("Not same.")
Последнее утверждение не выполнено.Мне кажется, что два набора данных, d2 и d3, имеют свое собственное случайное начальное число, хотя d3 отображает элементы d2 с помощью функции тождества.Как я могу сделать последнее утверждение верно?