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

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

什么是向量化?

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

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

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

向量化的作用

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

下面是一个例子:

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

import numpy as np
import timea = 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.lryc.cn/news/251580.html

相关文章:

  • 树与二叉树堆:经典OJ题集(2)
  • Java面试题(每天10题)-------连载(40)
  • 2023年【起重机司机(限桥式起重机)】报名考试及起重机司机(限桥式起重机)考试资料
  • Linux的基本指令(3)
  • C语言memcpy,memmove的介绍及模拟实现
  • 克服.360勒索病毒:.360勒索病毒的解密和预防
  • 21、Resnet50 中包含哪些算法?
  • pybind11教程
  • Java基础- 自定义类加载器
  • 2022年高校大数据挑战赛A题工业机械设备故障预测求解全过程论文及程序
  • 洛谷 P1998 阶乘之和 C++代码
  • 洛谷 B2006 地球人口承载力估计 C++代码
  • 少走弯路:OpenCV、insightface 等多方案人脸推理和识别
  • github代码连接vercel 建立一个公用网站
  • 使用pandas将字符串格式数据转换为单独的行
  • 【Tkinter 入门教程】
  • 深入理解Java中继承的高级使用方案
  • nexus私服开启HTTPS
  • 融合CFPNet的EVC-Block改进YOLO的太阳能电池板缺陷检测系统
  • 传媒行业CRM:打造高效客户管理,提升品牌影响力
  • 基于深度学习的肺炎CT图像检测诊断系统
  • YOLOv8改进 | 2023 | SCConv空间和通道重构卷积(精细化检测,又轻量又提点)
  • Python 全栈体系【四阶】(一)
  • Git【成神路】
  • 文件操作详解
  • 模块 A:web理论测试
  • git rebase冲突说明(base\remote\local概念说明)
  • 函数式接口的妙用,让异步执行更简单
  • 读书笔记:《More Effective C++》
  • 手写VUE后台管理系统6 - 支持TS声明文件.d.ts