TensorArray堆栈操作抛出ValueError

时间:2018-08-13 02:58:35

标签: python tensorflow

我正在尝试在TensorArray中使用while_loop,其中循环的每次迭代都填充TensorArray中的一项。下面显示了一个最小的示例:

ta = tensor_array_ops.TensorArray(size=4, tensor_array_name='output_ta', dtype=tf.float32)
time = tf.constant(0)

def _call(time, ta):
    ta.write(time, tf.constant([1.,2.,3.,4.]))
    return (time+1, ta)

_, t_out = tf.while_loop(
    cond=lambda time, _: time < 4,
    body=_call,
    loop_vars=(time, ta)
)

现在,此代码可以正常运行。但是,一旦我尝试对t_out进行任何操作,就会出现错误消息,例如

t_out.stack()
>>>  Attempt to convert a value (None) with an unsupported type (<class 'NoneType'>) to a Tensor.

有人可以看到我的代码有什么问题吗?

编辑:这似乎仅在“急切”模式下发生。如果有人知道我如何解决它,那么它可以在热切的模式下工作,那就太好了。

1 个答案:

答案 0 :(得分:0)

ta = ta.write(time, tf.constant([1.,2.,3.,4.]))