我正在尝试在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.
有人可以看到我的代码有什么问题吗?
编辑:这似乎仅在“急切”模式下发生。如果有人知道我如何解决它,那么它可以在热切的模式下工作,那就太好了。
答案 0 :(得分:0)
ta = ta.write(time, tf.constant([1.,2.,3.,4.]))