normalize

import numpy as np 
x=np.array([
    [1,2,3,4],
    [5,6,7,8],
    [9,10,11,12]])
print("x.shape = " + str(x.shape))
print("add by row = " + str(np.sum(x,axis=1))) 
#按行求和,维数发生改变
print("add by column = " + str(np.sum(x,axis=0))) 
#按列求和
print("add by row = " + str(np.sum(x,axis=1,keepdims = True))) 
#按行求和,维数未发生改变
print("add by column = " + str(np.sum(x,axis=0,keepdims = True)))
#按列求和

normalize 

import numpy as np 
def normalizeRows(x):
    x_norm=np.linalg.norm(x,axis=1,keepdims=True)
    #x_norm即范数||x||,计算每一行的长度,得到一个列向量
    print("x_norm = " + str(x_norm))
    x=x/x_norm
    #利用numpy的广播,用矩阵与列向量相除
    return x

x=np.array([
    [1,2,3,4],
    [5,6,7,8],
    [9,10,11,12]
])
print("normalizeRows(x) = " + str(normalizeRows(x)))

广播

import numpy as np 
def softmax(x):
    x_exp=np.exp(x)
    x_sum=np.sum(x_exp,axis=1,keepdims=True)
    s=x_exp/x_sum
    print("x_exp = " + str(x_exp))
    print("x_sum = " + str(x_sum))
    return s

x=np.array([
    [7,3,4,2],
    [5,1,2,3]
])
print("softmax(x) = " + str(softmax(x)))

猜你喜欢

转载自blog.csdn.net/smoggyxhdz/article/details/81392688