矩阵/向量的范数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Solo95/article/details/84324468

来自吴恩达 深度学习 第二周作业第一部分

# GRADED FUNCTION: normalizeRows
import numpy as np

def normalizeRows(x):
    """
    Implement a function that normalizes each row of the matrix x (to have unit length).
    
    Argument:
    x -- A numpy matrix of shape (n, m)
    
    Returns:
    x -- The normalized (by row) numpy matrix. You are allowed to modify x.
    """
    
    ### START CODE HERE ### (≈ 2 lines of code)
    # Compute x_norm as the norm 2 of x. Use np.linalg.norm(..., ord = 2, axis = ..., keepdims = True)
    x_norm = np.linalg.norm(x, axis=1, keepdims = True)

    x = x / x_norm

    return x

其中ord指定范数的阶数。

范数简述

我们知道距离的定义是一个宽泛的概念,只要满足非负、自反、三角不等式就可以称之为距离。

范数是一种强化了的距离概念,它在定义上比距离多了一条数乘的运算法则。有时候为了便于理解,我们可以把范数当作距离来理解。

向量的范数就是向量中每一项求n次方,求和之后再开n次方的根。
表示一种到坐标原点距离的度量。
二阶范数(也称L2范数)是最常见的范数,即欧几里得距离。
在这里插入图片描述

上图中 5 = 0 2 + 3 2 + 4 2 5=\sqrt{0^2+3^2+4^2} 5 6 = 2 2 + 6 2 + 4 2 \sqrt56=\sqrt{2^2+6^2+4^2} ,二阶范数,常用与深度学习领域。

参考资料

https://blog.csdn.net/a493823882/article/details/80569888

猜你喜欢

转载自blog.csdn.net/Solo95/article/details/84324468