在TensorFlow即时执行模式下替代tf.parallel_stack()的方案咨询
替代tf.parallel_stack()的方案(支持即时执行模式)
你可以直接用tf.stack()替代tf.parallel_stack(),两者在你的场景下行为完全一致,而且tf.stack()完美支持即时执行模式。
直接使用tf.stack()的示例:
x = tf.constant([1, 4]) y = tf.constant([2, 5]) z = tf.constant([3, 6]) result = tf.stack([x, y, z]) # 输出结果:[[1, 4], [2, 5], [3, 6]]
tf.stack()默认会在第0个轴上创建新维度,将输入的一维张量堆叠成二维张量,和tf.parallel_stack([x, y, z])的效果完全相同。
基于tf.concat()的实现方式(如果你想沿用已尝试的思路):
如果坚持用tf.concat(),需要先给每个一维张量增加一个维度,再在第0轴上拼接:
result = tf.concat([tf.expand_dims(t, axis=0) for t in [x, y, z]], axis=0) # 同样得到:[[1, 4], [2, 5], [3, 6]]
不过相比之下,tf.stack()的写法更简洁直观,是首选的替代方案。
内容的提问来源于stack exchange,提问作者Magdalena
相关产品推荐
相关产品推荐

