TensorFlow和Torch中的基本函数异同(一)——拼接函数,转置函数,增加维度函数

拼接函数:tf.concat()等价于torch.cat()

转置函数:torch中:对二维Tensor转置操作transpose(dim1,dim2)或者直接t();

                                          对多维Tensor转置操作permute(dim1,dim2,...,dimn),

                                          例如:x = torch.Tensor(3,4,2,5)

y = x:permute(2,3,1,4) -- 等价于 y = x:transpose(1,3):transpose(1,2)

输出:y:size()

结果为:4

2

3

5

TensorFlow中:调用tf.transpose()来实现转置

针对一维Tensor:

例如:x = [[1 2 3] [4 5 6]]

tf.transpose(x) ==> [[1 4]

[2 5]

[3 6]]

tf.transpose(x) 等价于:

tf.transpose(x perm=[1, 0]) ==> [[1 4]

[2 5]

[3 6]]

针对多维Tensor:

例如:a=tf.constant([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]])

array([[[ 1, 2, 3], [ 4, 5, 6]],

[[ 7, 8, 9], [10, 11, 12]]])

x=tf.transpose(a,[0,2,1])

array([[[ 1, 4],

[ 2, 5],

[ 3, 6]],

[[ 7, 10],

[ 8, 11],

[ 9, 12]]])

x=tf.transpose(a,[1,0,2])

array([[[ 1, 2, 3],

[ 7, 8, 9]],

[[ 4, 5, 6],

[10, 11, 12]]])

x=tf.transpose(a,[2,1,0])

array([[[ 1, 7],

[ 4, 10]],

[[ 2, 8],

[ 5, 11]],

[[ 3, 9],

[ 6, 12]]])

x=tf.transpose(a,[1,2,0])

array([[[ 1, 7],

[ 2, 8],

[ 3, 9]],

[[ 4, 10],

[ 5, 11],

[ 6, 12]]])

增加维度:TensorFlow中,想要维度增加一维,可以使用tf.expand_dims(input,dim,name=None)函数

Torch中,使用nn.unsqueeze(pos [,numInputDims])在pos位置上插入1.






你可能感兴趣的:(Tensor_Flow学习笔记)