Tensorflow:初始化在tf.data.Dataset.map()中创建的变量时出错

时间:2018-12-20 08:00:45

标签: python tensorflow-datasets

我用TF操作创建了一个函数,该函数用tf.data.Dataset.map()调用以将输入数据转换为模型。在该函数内部,创建一个tf.Variable并分配给它。初始化变量时,TF抱怨变量的初始化操作不是图形的元素,或者变量与其他变量不属于同一图形。对于解决此问题的任何帮助,我们将不胜感激。

在这里您可以看到一些玩具代码来重现该问题(TF 1.12):

import tensorflow as tf

def fun(x):
    f = tf.Variable(tf.ones((1,), dtype=tf.int64), name='test')
    op = f.assign(x, name='test_assign')
    with tf.control_dependencies([op]):
       f = tf.identity(f)
    return f

def generator():
  while True:
    yield [2]

ds = tf.data.Dataset.from_generator(generator, 
output_shapes=tf.TensorShape([1,]), output_types=tf.int64)
ds = ds.map(fun)
iterator = ds.make_one_shot_iterator()
y = iterator.get_next()

sess = tf.Session()
sess.run(tf.global_variables_initializer())  
for _ in range(5):
   print(sess.run(y)

0 个答案:

没有答案