本文介绍: 之前计算logistic回归损失函数时,在代码实现时,讨论了for循环:过多的for循环会拖慢计算的速度(尤其当数据量很大时)因此,为了加快计算,向量化是一种手段运用python的numpy库,我们可以使用库函数,这些函数一般可以并行计算(类似矩阵计算),加快计算的速度。
什么是向量化?
之前计算logistic回归损失函数时,在代码实现时,讨论了for循环:过多的for循环会拖慢计算的速度(尤其当数据量很大时)
运用python的numpy库,我们可以使用库函数,这些函数一般可以并行计算(类似矩阵计算),加快计算的速度
向量化的作用
要计算百万量级数组的相乘,运用numpy里的np.dot()函数计算,大大加快计算速度(相较于for循环)
import numpy as np
import time
a = np.random.rand(10000000)
b = np.random.rand(10000000)
tic = time.time()
c = np.dot(a,b)
toc = time.time()
print(c)
print("vectorized version: " + str(1000*(toc-tic)) + "ms")
c = 0
tic = time.time()
for i in range(10000000):
c += a[i]*b[i]
toc = time.time()
print(c)
print("for loop: " + str(1000*(toc-tic)) + "ms")
可以看到,运用函数只需要5ms不到就可以完成计算,而for循环需要2100ms才可以完成计算
向量化加快计算的原因
对于计算机的GPU(Graphics Processing Unit)和CPU(Central Processing Unit),它们十分擅长并行计算,也就是说,运用向量化,可以充分发挥计算机的性能
原文地址:https://blog.csdn.net/Xudong_12345/article/details/134758493
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_29884.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。