我需要一个与roll非常相似的张量变换。所不同的是,我不希望轴末端的值出现在开始处。换句话说,例如,我希望第二个元素位于3d位置,但我不希望最后一个元素成为第一个元素。相反,我希望第一个元素为零。
我已经尝试过了:
prev_xs = tf.roll(xs, shift = 1, axis = 1)
prev_xs[:,0] = 0.0
但是,它不起作用,因为
TypeError: 'Tensor' object does not support item assignment
那么,该问题的正确解决方法是什么?
答案 0 :(得分:3)
您可以使用
develop
分步介绍,我们通过像prev_xs = tf.concat((tf.zeros([tf.shape(xs)[0], 1]), xs[:, :1]), axis=1)
这样的索引来丢弃xs
的最后一列。我们创建零列并具有适当的行数。然后,我们将其串联在[:, :1]
前面,将每列向后推1。