Skip to main content
 首页 » 编程设计

python之如何在 TensorFlow 中无周期边界滚动

2024年08月14日32jillzhang

我需要一个与滚动非常相似的张量转换。区别在于我不希望轴末尾的值出现在开头。换句话说,例如,我希望第二个元素位于 3d 位置,但我不希望最后一个元素成为第一个元素。相反,我希望第一个元素为零。

我试过这个:

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

但是,它不起作用,因为

TypeError: 'Tensor' object does not support item assignment 

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

请您参考如下方法:

你可以使用

prev_xs = tf.concat((tf.zeros([tf.shape(xs)[0], 1]), xs[:, :1]), axis=1) 

逐步地,我们通过像 [:, :1] 这样的索引来丢弃 xs 的最后一列。我们创建一列具有适当行数的零。然后我们将它连接到 xs 前面,将每列向后推 1。