Tensorflow:初始化变量时的无限循环

时间:2018-10-28 23:58:17

标签: python tensorflow

当我调用一个采用输入张量的形状并从该形状创建变量的函数时,就会遇到某种无限循环。

这是代码段,下面是打印输出。

def g(z_lat, u):
 print(u)
 shape = tf.shape(u)[1:] #Don't take the batch size as a dimension 
 print(shape)
 wi = lambda inits, name: tf.Variable(inits * tf.ones(shape), name=name)
 a1 = wi(0., 'a1')
 return a1

输出:

Tensor("truediv:0", shape=(?, 9), dtype=float32)
Tensor("strided_slice:0", shape=(1,), dtype=int32)

我以某种方式感到解决方案很明显,但我看不到它。感谢您的帮助。

编辑:当第一维未知时(而不是(?,9)例如(200,9)),它可以工作

这是我执行键盘中断时的输出。重复一遍:

usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/variables.py in has_cycle(op, path)
       2165       path.add(op.name)
       2166       for op_input in op.inputs:
    -> 2167         if has_cycle(op_input.op, path):
       2168           return True
       2169       for op_control_input in op.control_inputs:

    /usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/variables.py in has_cycle(op, path)
       2165       path.add(op.name)
       2166       for op_input in op.inputs:
    -> 2167         if has_cycle(op_input.op, path):
       2168           return True
       2169       for op_control_input in op.control_inputs:

0 个答案:

没有答案