tensorflow维度相关的问题

1、降掉为1的维度

#P => shape=[1,3,3,1]

P1=tf.squeeze(P) #降掉所有为1的维度
P2=tf.squeeze(P, [3]) #降掉指定维度为1的维度

#降维之后的结果
P1 => Tensor("Squeeze:0", shape=(3, 3), dtype=float32)
P2 => Tensor("Squeeze_1:0", shape=(1, 3, 3), dtype=float32)

2、增加维度(一般只能增加为1的维度,并且需要指定哪一维度)

#P => shape=[3,3]

P3=tf.expand_dims(P,0) #
P4=tf.expand_dims(P,2)

#增加维度之后的结果
P3 => Tensor("ExpandDims:0", shape=(1, 3, 3), dtype=float32)
P4 => Tensor("ExpandDims_1:0", shape=(3, 3, 1), dtype=float32)

3、合并维度(需要指定维度,并且合并的两个tensor的shape需要一致)

# P1 => shape[1,3,3]
# P2 => shape[1,3,3]

P_1=tf.concat([P1,P2],axis=0)
P_2=tf.concat([P1,P2],axis=1)
P_3=tf.concat([P1,P2],axis=2)

#维度合并之后的结果,简单看就是维度相加,并不是对应tensor值相加

P_1 => Tensor("concat:0", shape=(2, 3, 3), dtype=float32)
P_2 => Tensor("concat_1:0", shape=(1, 6, 3), dtype=float32)
P_3 => Tensor("concat_2:0", shape=(1, 3, 6), dtype=float32)

 

你可能感兴趣的:(python学习,tensorflow)