当前位置: 首页 > article >正文

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

什么是向量化?

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

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

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

向量化的作用

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

下面是一个例子:

要计算百万量级数组的相乘,运用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才可以完成计算

向量化加快计算的原因

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

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


http://www.kler.cn/news/156807.html

相关文章:

  • 【C++ regex】C++正则表达式
  • STM32单片机项目实例:基于TouchGFX的智能手表设计(1)项目介绍及GUI界面基础
  • 应用于智慧工厂的AI边缘计算盒子+AI算法软硬一体化方案
  • Oracle(2-8)Configuring the Database Archiving Mode
  • Typora免费版安装教程(仅供学习)
  • 【vue】尚硅谷vue3学习笔记
  • Vue2学习笔记(事件处理)
  • 谈谈 .NET8 平台中对 LiteDB 的 CRUD 操作
  • 羊大师教你如何有效应对冬季流感,保护自己与家人
  • CRM实战:如何对商机阶段进行有效管理
  • 智能联动第三方告警中心,完美实现故障响应全闭环
  • 如何使用cpolar+Plex在Windows系统上搭建私人媒体影音站点公网可访问
  • 1+x网络系统建设与运维(中级)-练习3
  • 【蓝桥杯】翻硬币
  • 地方公派|商学院老师对口加拿大古德曼商学院访学交流
  • 微信小程序引入node_modules依赖
  • Android启动系列之进程杀手--lmkd
  • 数字法院大脑管理|助力实现司法数字化
  • jupyter notebook 添加环境与删除环境
  • 【数据结构】手撕排序NO.1
  • Android 获取屏幕方向,根据屏幕旋转角度判断屏幕实际方向
  • iOS代码混淆工具
  • css 修改滚动条样式,解决Windows浏览器中滚动条不美观问题
  • 分治—快速选择算法
  • Linux DataEase数据可视化分析工具本地部署与远程访问
  • 物流实时数仓ODS层——Mysql到Kafka
  • SpringBoot第56讲:SpringBoot集成文件 - 集成EasyExcel之Excel导入导出
  • 学嵌入式,已经会用stm32做各种小东西了,下一步是什么
  • 【预测工具】不须编码的预测和数据可视化工具
  • React自定义Hook之useModel hook