tensorflow2.0基本操作四维度变换

import  os
import  tensorflow as tf


#[A,B,C,D]A轴一般被理解为batch,B轴被理解为row/weight,C被理解为width/column,D被理解为channel(颜色通道)
#[b,h,w,c]四位的数据一般是这个含义


#视图
#[b,28,28]
a = tf.random.normal([4,28,28,3])
#print(a.shape,a.ndim)

b = tf.reshape(a,[4,784,3]).shape#利用矩阵的运算原理,做等价变换
#print(b)

c = tf.reshape(a,[4,-1,3]).shape#想偷懒不计算的话,就将其写为-1
#print(c)

d = tf.reshape(a,[4,-784*3]).shape#利用矩阵的运算原理,做等价变换,同时对维度进行变换
#print(d)

e = tf.reshape(a,[4,-1]).shape#参考上面的操作,再次打为-1
#print(e)



#对形状进行恢复#当前形状,目标形状
f = tf.reshape(a,[4,-1],[4,28,28,3]).shape

g = tf.reshape(a,[4,-1],[4,14,56,3]).shape

h = tf.reshape(a,[4,-1],[4,1,784,3]).shape









a = tf.random.normal((4,3,2,1))
a.shape
tf.transpose(a).shape#对轴进行转置
tf.transpose(a,perm=[0,1,3,2]).shape#选择对应的轴用于转置

#对应轴的选取也可以写为
tf.transpose(a,[0,1,3,2]).shape





#维度的扩展与收缩
#a:[classes,students,classes]
a = tf.random.normal([4,35,8])
tf.expand_dims(a,axis = 0).shape#在第一列扩展一维
tf.expand_dims(a,axis = 4).shape#在第四列扩展一维



#降维
#only squeeze for shape = 1 dim
tf.squeeze(tf.zeros([1,2,1,1,3])).shape#→[2,3]

#指定轴数降维
tf.squeeze(a,axis = 0).shape

你可能感兴趣的:(tensorflow基础操作,机器学习,numpy,python,深度学习,人工智能)