主要参考了以下的文章,感谢原作者。
https://blog.youkuaiyun.com/Cerisier/article/details/80118611
import tensorflow as tf
a = tf.constant([[1, 2, 3, 4, ], [5, 6, 7, 8, ], [9, 10, 11, 12, ], [13, 14, 15, 16]])
l = tf.constant([1, 2, 3, 4], tf.int64) # 每一次翻转长度分别为1,2,3.由于a是(3,3)维的,所以l中数值最大只能是3
x = tf.reverse_sequence(a, seq_lengths=l, seq_axis=0, batch_axis=1) # 以列为单位进行翻转,翻转的是每一行的元素
y = tf.reverse_sequence(a, seq_lengths=l, seq_axis=1, batch_axis=0) # 以行为单位进行翻转,翻转的是每一列的元素
with tf.Session() as sess:
print(sess.run(x))
print(sess.run(y))
"""
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
反转的操作如下:
[ 1 6 11 16]
[ 5 2 7 12]
[ 9 10 3 8]
[13 14 15 4]
依照列为单位反转的是每一行的元素,所以
第一列,1反转,还是1,
第二列,6与2反转,结果为:
2 6
6 2
第三列,
3 11
7 7
11 3
第四列做出镜像的反转,
4 16
8 12
12 8
16 4
"""
依照行为单位的反转同理。
博客参考相关文章,给出了TensorFlow中序列反转操作的代码示例。通过定义常量张量和翻转长度,使用tf.reverse_sequence函数分别以列和行为单位进行元素翻转,并给出了反转后的结果及详细解释。
3430

被折叠的 条评论
为什么被折叠?



