【课程笔记】华为 HCIA-AI 人工智能24:张量的维度变化

张量的维度变化

目录

张量的维度变化

1. 维度shape查看

2. 维度重组

3. 维度增加

4. 维度减少

5. 转置

6. 广播(小维度变大维度)


学习目标:

①维度shape查看

②维度重组

③维度增加

④维度减少

⑤转置

⑥广播

1. 维度shape查看

const_d_1=tf.constant([[1,2,3,4]],shape=[2,2],dtype=tf.float32)

print(const_d_l.shape)

print(const_d_l.get_shape())

print(tf.shape(const_d_l) 输出为张量,其数值表示所查看张量维度大小

2. 维度重组

tf.reshape(tensor,shape,name=None): shape重组后张量的维度

reshape_1=tf.constant([[1,2,3],[4,5,6]])print(reshape_1)tf.reshape(reshape_1,(3,2)) 把2x3的维度变成3x2的维度

3. 维度增加

tf.expand_dims(input,axis,name=None)与expand_sampe_1=tf.random.normal([100,100,3]) 生成一张大小为100x100x3的张量表示一张尺寸为100x100的三通道彩色图片但一般都按四维处理NHWC CPU环境

tf.expand_dims(expand_sample_1,axis=0),shape) 输出(1,100,100,3)

tf.expand_dims(expand_sample_1,axis=1),shape) 输出(100,1,100,3)

tf.expand_dims(expand_sample_1,axis=-1倒序),shape) 输出(100,100,3,1)

4. 维度减少

tf.squeeze(input,axis=None,name=None)

squeeze_sample_1=tf.random.normal([1,100,100,3]) 但在做数据可视化用matplotlibopencv输入格式三维

squeeze_sample_1=tf.squeeze(squeeze_sample_1,axis=0)

输出(100,100,3)

5. 转置

tf.tanspose(a,perm=None,conjugate=False,name='transpose')

a为输入张量

trans_sampe_1=tf.constant([1,2,3,4,5,6],shape=[2,3]) -> (2,3)

transposed_sample_1=tf.transpose(trans_sample_1) -> (3,2)

trans_sample_2=tf.random.normal([4,100,200,3]) perm原始顺序[0,1,2,3]

transposed_sample_2=tf.transpose(trans_sample_2,[0,2,1,3]) -> 输出(4,200,100,3)

6. 广播(小维度变大维度)

tf.broadcast_to(input,shape,name=None):

broadcast_sample_1=tf.constant([1,2,3,4,5,6]) 一维张量

broadcasted_sample_1=tf.broadcast_to(broadcast_sample_1,shape=[4,6]) 变成4x6矩阵

输出:

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

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

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

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

运算时,当有两个数组a、b形状不同时,与numpy一样,tensorflow将自动触发广播机制

你可能感兴趣的:(华为,HCIA-AI,人工智能,笔记,人工智能)