转置
tf.transpose(a,perm=None,conjugate=False,name='transpose'):
a:输入张量;
perm:张量的尺寸排列;一般用于高维数组的转置。
conjugate:表示复数转置;
name:名称。
代码:
低维的转置问题比较简单,输入需转置张量调用tf.transpose
trans_sample_1 = tf.constant([1,2,3,4,5,6],shape=[2,3])
print("原始数据尺寸:",trans_sample_1.shape)
transposed_sample_1 = tf.transpose(trans_sample_1)
print("转置后数据尺寸:",transposed_sample_1.shape)
输出:
原始数据尺寸: (2, 3)
转置后数据尺寸: (3, 2)
代码:
'''高维数据转置需要用到perm参数,perm代表输入张量的维度排列。
对于一个三维张量来说,其原始的维度排列为[0,1,2](perm)分别代表高维数据的长宽高。
通过改变perm中数值的排列,可以对数据的对应维度进行转置'''
生成一个大小为$1002003的张量来表示4张尺寸为100200的三通道彩色图片
trans_sample_2 = tf.random.normal([4,100,200,3])
print("原始数据尺寸:",trans_sample_2.shape)
对4张图像的长宽进行对调。原始perm为[0,1,2,3],现变为[0,2,1,3]
transposed_sample_2 = tf.transpose(trans_sample_2,[0,2,1,3])
print("转置后数据尺寸:",transposed_sample_2.shape)
输出:
原始数据尺寸: (4, 100, 200, 3)
转置后数据尺寸: (4, 200, 100, 3)