如何在TensorFlow中无周期滚动?

时间:2019-02-20 08:45:55

标签: python tensorflow

我需要一个与roll非常相似的张量变换。所不同的是,我不希望轴末端的值出现在开始处。换句话说,例如,我希望第二个元素位于3d位置,但我不希望最后一个元素成为第一个元素。相反,我希望第一个元素为零。

我已经尝试过了:

prev_xs = tf.roll(xs, shift = 1, axis = 1)
prev_xs[:,0] = 0.0

但是,它不起作用,因为

TypeError: 'Tensor' object does not support item assignment

那么,该问题的正确解决方法是什么?

1 个答案:

答案 0 :(得分:3)

您可以使用

develop

分步介绍,我们通过像prev_xs = tf.concat((tf.zeros([tf.shape(xs)[0], 1]), xs[:, :1]), axis=1) 这样的索引来丢弃xs的最后一列。我们创建零列并具有适当的行数。然后,我们将其串联在[:, :1]前面,将每列向后推1。