04-m个样本的梯度下降、向量化及计算举例、向量化逻辑回归学习笔记

上一次,推导了计算导数,及应用梯度下降在逻辑回归的一个训练样本上。现在一个训练样本过程应用在m个训练样本上。

# coding=utf-8
import time  # 导入时间库
import numpy as np  # 导入numpy库


a = np.array([1, 2, 3, 4])  # 创建一个数据a
print(a)
# [1 2 3 4]

a = np.random.rand(1000000)
# 通过round随机得到两个一百万维度的数组
b = np.random.rand(1000000)
tic = time.time()  # 现在测量一下当前时间

# 向量化的版本
c = np.dot(a, b)
toc = time.time()
# 打印一下向量化的版本的时间
print("Vectorized version:" + str(1000 * (toc - tic)) + "ms")

# 继续增加非向量化的版本
c = 0
tic = time.time()
for i in range(1000000):
    c += a[i] * b[i]
toc = time.time()
print(c)
# 打印for循环的版本的时间
print("For loop:" + str(1000 * (toc - tic)) + "ms")

代码中向量化转换的逻辑:z=np.dot(w,x)+b。其运行结果如下:相对于for循环,向量化版本的耗时非常低

猜你喜欢

转载自blog.csdn.net/qq_30507287/article/details/113530177