Tensorflow维度变换

变换维度reshape

a = tf.random.normal([4,28,28,3])
a.shape,a.ndim
(TensorShape([4, 28, 28, 3]), 4)
tf.reshape(a,[4,784,3]).shape
TensorShape([4, 784, 3])
tf.reshape(a,[4,-1,3]).shape
TensorShape([4, 784, 3])
tf.reshape(a,[4,784*3]).shape
TensorShape([4, 2352])
tf.reshape(a,[4,-1]).shape
TensorShape([4, 2352])
tf.reshape(tf.reshape(a,[4,-1]),[4,1,784,3]).shape
TensorShape([4, 1, 784, 3])

转置tf.transpose

a = tf.random.normal([4,3,2,1])
tf.transpose(a).shape
TensorShape([1, 2, 3, 4])
tf.transpose(a,perm=[0,1,3,2]).shape
TensorShape([4, 3, 1, 2])
tf.transpose(a,[0,3,2,1]).shape
TensorShape([4, 1, 2, 3])

扩维expand_dims

a=tf.random.normal([4,35,8])

tf.expand_dims(a,axis=0).shape
TensorShape([1, 4, 35, 8])
tf.expand_dims(a,axis=3).shape
TensorShape([4, 35, 8, 1])
tf.expand_dims(a,axis=-1).shape
TensorShape([4, 35, 8, 1])

减维squeeze_dim去掉维度为1的

a=tf.zeros([1,2,1,3])
tf.squeeze(a,axis=0).shape
TensorShape([2, 1, 3])
tf.expand_dims(a,axis=-2).shape
TensorShape([1, 2, 1, 1, 3])

你可能感兴趣的:(Tensorflow)