深度学习常用技巧之改变矩阵大小和归一化

1.改变矩阵的大小

在深度学习中我们常用numpy模块中的np.shape和np.reshape来查询矩阵数组的形状或者重新定义矩阵的形状(需保证改变形状前后,数组的元素总个数相等)
当我们用一个算法处理一幅图像时,我们需要将输入的矩阵的形状变为一个向量的形式(长x高x3,1)。换句话说就是,你需要将三维的矩阵展开为一维的向量形式。
下面是将一幅图像变为一个向量的图示:
深度学习常用技巧之改变矩阵大小和归一化_第1张图片

在图像处理中,我们常用image2vector()函数来实现将输入的矩阵的形状(长,高,3)变为一个一维向量的形式(长x高x3,1)。
下面给出实现代码:

def image2vector(image):
#image--a numpy array of shape(length,height,depth)
#v--a vector of shape(length*height*depth,1)
    v=image.reshape((image.shape[0]*image[1]*image[2]),1)
    return v

2.归一化矩阵的行

在机器学习和深度学习中另外一个常用的方法是归一化数据。这种处理方式将会使我们在进行计算梯度时更加快速。下面举一个简单的例子(图示):
深度学习常用技巧之改变矩阵大小和归一化_第2张图片

下面是实现该算法的代码:

def noralizeRows(x):
    x_norm=np.linalg.norm(x,axis=1,keepdims=ture)
    x=x/x_norm
    return x

:文章选自作者学习吴恩达深度学习视频时所写笔记,如有转载,请标明出处

你可能感兴趣的:(深度学习_python代码实现,深度学习)