tf.reverse 函数用于将某个张量沿着某条轴倒转。
它的函数声明如下:
reverse(
tensor,
axis,
name=None
)
参数:
tensor:是某个张量,数据类型可以是整数、浮点数、布尔、字符串、复数。秩最高可以为8.
axis:列表,如[-1]会倒转最后一条轴,[2]会倒转第二条轴(从0开始)。
name(可选):字符串,指定操作名。
返回:
一个与tensor有着相同类型和形状的张量。
它的操作与numpy有些切片操作等同。例如:
import tensorflow as tf
import numpy as np
x = np.random.randn(10, 224, 224, 3)
x_reversed1 = x[:, :, :, ::-1]
x_reversed2 = x[:, ::-1, :, :]
x_reversed3 = x[:, ::-1, ::-1, :]
y1_1 = tf.reverse(x, axis=[-1]) # 可以使用负数指定某一轴
y1_2 = tf.reverse(x, axis=[3])
y2_1 = tf.reverse(x, axis=[1])
y2_2 = tf.reverse(x, axis=[-3])
y3 = tf.reverse(x, axis=[1, 2]) # 可以同时倒转多个轴
sess = tf.Session()
y1_1_v, y1_2_v, y2_1_v, y2_2_v, y3_v = sess.run([y1_1, y1_2, y2_1, y2_2, y3])
np.all(x_reversed1 == y1_1_v) # True
np.all(x_reversed1 == y1_2_v) # True
np.all(x_reversed2 == y2_1_v) # True
np.all(x_reversed2 == y2_2_v) # True
np.all(x_reversed3 == y3_v) # True