深度学习记录--初识向量化

什么是向量化?

之前计算logistic回归损失函数时,在代码实现时,讨论了for循环:过多的for循环会拖慢计算的速度(尤其当数据量很大时)

因此,为了加快计算,向量化是一种手段

运用pythonnumpy 库,我们可以使用库函数,这些函数一般可以并行计算(类似矩阵计算),加快计算的速度

向量化的作用

向量化能加快计算速度,能加快多少呢?

下面是一个例子:

要计算百万量级数组的相乘,运用numpy 里的**np.dot()**函数计算,大大加快计算速度(相较于for循环)

python 复制代码
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才可以完成计算

向量化加快计算的原因

numpy里的np,dot函数实际运用了并行计算的方法

对于计算机的GPU (Graphics Processing Unit )和CPU (Central Processing Unit ),它们十分擅长并行计算,也就是说,运用向量化,可以充分发挥计算机的性能

相关推荐
飞Link1 分钟前
ASFormer 动作分割模型全解析:原理、结构、代码实战与工程踩坑总结
人工智能·深度学习·计算机视觉·transformer
Gofarlic_OMS3 分钟前
Fluent许可证使用合规性报告自动化生成系统
java·大数据·运维·人工智能·算法·matlab·自动化
github.com/starRTC6 分钟前
Claude Code中英文系列教程16:在GitHub Actions中使用 AWS Bedrock & Google Vertex AI
人工智能
盼小辉丶9 分钟前
视觉Transformer实战 | Data-efficient image Transformer(DeiT)详解与实现
深度学习·计算机视觉·transformer·vit
沛沛老爹9 分钟前
从Web到AI:Agent Skills安全架构实战——权限控制与数据保护的Java+Vue全栈方案
java·开发语言·前端·人工智能·llm·安全架构·rag
AI营销前沿10 分钟前
原圈科技AI营销内容:SaaS案例创作告别低效,效率翻倍
大数据·人工智能
纪伊路上盛名在11 分钟前
Chap2 Neural Networks with PyTorch
人工智能·pytorch·python·深度学习·机器学习
码农汉子12 分钟前
零基础入门】Open-AutoGLM 完全指南:Mac 本地部署 AI 手机助理(原理+部署+优化)
人工智能·macos·智能手机
linmoo198613 分钟前
Langchain4j 系列之三十一 - Observability之入门
人工智能·langchain·observability·langchain4j
小飞大王66614 分钟前
使用nodejs接入ai服务并使用sse技术处理流式输出实现打字机效果
前端·javascript·人工智能