深度学习基础
神经网络的数学基础
神经网络的“齿轮”:张量运算
张量变形
-
第三个重要的张量运算是张量变形(tensor reshaping)。张量变形是指改变张量的行和列,以得到想要的形状。变形后的张量的元素总个数与初始张量相同。
>>> x = np.array([[0., 1.], [2., 3.], [4., 5.]]) >>> print(x.shape) (3, 2) >>> x = x.reshape((6, 1)) >>> x array([[ 0.], [ 1.], [ 2.], [ 3.], [ 4.], [ 5.]]) >>> x = x.reshape((2, 3)) >>> x array([[ 0., 1., 2.], [ 3., 4., 5.]])
-
经常遇到的一种特殊的张量变形是转置(transposition)。对矩阵做转置是指将行和列互换,使 x[i, :] 变为 x[:, i]。
>>> x = np.zeros((300, 20)) # 创建一个形状为 (300, 20) 的零矩阵 >>> x = np.transpose(x) >>> print(x.shape) (20, 300)
张量运算的几何解释
-
对于张量运算所