Course1week2--Python Basics with numpy--调试心得

时间:2019-01-17
本文章向大家介绍Course1week2--Python Basics with numpy--调试心得,主要包括Course1week2--Python Basics with numpy--调试心得使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

——————————————————以下是调试心得————————————————————————
-编辑时间 1/17/2019
-注意numpy基础函数的运用,即使使用tensorflow,keras框架,某些功能依然可以在算法中起到作用,例如 time模块,类似于单片机中的简化算法调试工作。

def sigmoid(x):

    s = 1/(1+np.exp(-x))

    return s

y2 = sigmoid(np.array([1, 2, 3]))

print("y2 is "+ str(y2))

规范化array定义详见np.array
def 定义函数一定要记得加冒号,且print一定记得str().

def image2vec(matrix):

    vector = matrix.reshape(matrix.shape[0]*matrix.shape[1]*matrix.shape[2], 1)

    return vector

matrix = np.array([[[1,2,3],[3,4,5],[4,5,6]],[[1,2,3],[3,4,5],[4,5,6]],[[1,2,3],[3,4,5],[4,5,6]]])

print("result is "+ str(image2vec(matrix)))

reshape和shape的前缀都是array名,在视频中有提到,经常reshape一下矩阵计算结果,有助于减少不必要的debug时间,在此注意!

def normalization(x):

    x_norm = np.linalg.norm(x,ord=2, axis=1, keepdims=True)

    x = x/x_norm

    return x

x = np.array([[1,2,3],[4,5,6]])

print("the result is "+ str(normalization(x)))

正态化后,往往gradient descent收敛的更快!使用函数包为np.linalg.norm

def softmax(x):

    x_exp = np.exp(x)

    x_sum = np.sum(x_exp, axis = 1, keepdims= True)

    y = x_exp/x_sum

    return y

x= np.array([[9, 2, 5, 0, 0],[7, 5, 0, 0 ,0]])

print("the result is "+ str(softmax(x)))

使用np.sum函数,自动按照设置元素求和。keepdims决定是否维持二维特性!

对于Loss function函数,这里不赘述,采用np.sum可简单解决。

numpy的文档资料

调试工具Python3.6.5

coursera原文