变换维度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])