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

什么是向量化?

之前计算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.mzph.cn/news/193204.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

整车信息安全工作简介

在整车研发生命周期内,信息安全应被视为一个重要的方面,以下是一些实施信息安全的关键措施: 1. 安全风险评估:在整车研发的早期阶段,进行安全风险评估是至关重要的。通过对车辆系统和组件进行安全威胁分析&#xff0c…

‘str‘ object has no attribute ‘decode‘:问题解决办法

‘str’ object has no attribute ‘decode’ 一般是因为decode方法不匹配导致的 由于此方法是开源文件编写的,我们无法直接将其修改 所以可以使用一些暴力的方法,比如卸载重装 首先使用命令 pip uninstall h5py然后安装版本比较低的h5py pip instal…

跨境独立站和传统外贸的差异

跨境独立站和传统外贸主要在以下几个方面存在区别: 交易形式:传统外贸主要涉及线下交易,买卖双方需要经过面谈、磋商、签订合同等环节。而跨境独立站则主要通过线上平台进行交易,买卖双方可以通过平台发布产品、协商价格、完成支…

Python核心编程之基础内功

目录 一、语句和语法 1、 注释( # ) 2、继续( \ ) 3、多个语句构成代码组(:):

使用Redis和opcache为网站加速教程

主题优化介绍 为了让大家了解什么是极速优化,首先我必须的得再次介绍一下主题是如何做的。 简单的说一个网站打开的流程:wordpress使用PHP为后端服务,由PHP进行html内容渲染,然后传入用户浏览器。 那么这里我们从速度优化上来讲主…

消息对列MQ

消息队列 优点 1.实现系统解耦 2.实现异步调用 3.流量削峰 缺点 1.系统可用性降低 2.提高系统的复杂度 3.数据一致性问题 Kafka 概述 一个分布式消息发布订阅系统,一个分布式的日志提交系统。性能高效、可扩张性良好和可以持久化。它的分区特性,可复制…

C++ Easyx 三子棋

目录 思路 框架​编辑 读取操作 数据操作 绘制画面 游戏的数据结构 用二维数组来模拟棋盘格 赢的情况 平局情况 Code 代码细节部分 (1)初始化棋盘格 (2) 初始化棋子类型​编辑 事件处理部分 落子 框架内代码的完善 数据处…

半监督节点分类上的HyperGCN

1.Title HyperGCN: Hypergraph Convolutional Networks for Semi-Supervised Classification(Naganand Yadati、Prateek Yadav、Madhav Nimishakavi、Anand Louis、Partha Talukdar)【ACM Transactions on Knowledge Discovery from Data 2022】 2.Conc…

【并发编程】CopyOnWriteArrayList详解与原理

📫作者简介:小明Java问道之路,2022年度博客之星全国TOP3,专注于后端、中间件、计算机底层、架构设计演进与稳定性建设优化,文章内容兼具广度、深度、大厂技术方案,对待技术喜欢推理加验证,就职于…

springboot中EventSourceListener的onEvent方法中, 获取HttpServletResponse对象

在Spring Boot中,可以通过注入HttpServletResponse对象来获取。具体步骤如下: 在EventSourceListener类中定义一个HttpServletResponse类型的成员变量response,并添加一个构造函数,将response作为参数传入。 在onEvent方法中&…

SmartSoftHelp8,IIS Nginx,windows linux 高并发服务器优化配置工具

Windows IIS 性能优化配置 Windows Nginx 性能优化配置模板 Linux Nginx 性能优化配置模板 Nginx 常用命令 webconfig 优化配置详细说明 下载地址: https://pan.baidu.com/s/1zBgeYsqWnSlNgiKPR2lUYg?pwd8888

深入理解网络非阻塞 I/O:NIO

🔭 嗨,您好 👋 我是 vnjohn,在互联网企业担任 Java 开发,CSDN 优质创作者 📖 推荐专栏:Spring、MySQL、Nacos、Java,后续其他专栏会持续优化更新迭代 🌲文章所在专栏&…

java应用程序性能分析

一、Java程序性能优化 1. 程序的性能通过以下几个方面来表现: 1)执行速度:程序的反映是否迅速,响应时间是否足够短; 2)内存分配:内存分配是否合理,是否过多地消耗内存或者存在泄漏&…

监测tcp连接状态

using System; using System.Collections.Generic; using System.Linq; using System.Net.Sockets; using System.Text; using System.Threading; using System.Threading.Tasks;namespace 检测tcp连接状态 {public class TCPClient{private TcpClient client;private bool con…

npm上传发布自定义组件超详细流程

前言 vue3,vite,基于element Plus 的el-table二次封装表格并且上传到npm上,让别人可以通过npm安装你的插件。 一、创建一个新的vue 项目 npm create vuelatest 自己取一个名字,然后一直回车 完成以后进入项目npm i,有用到eleme…

02-获取连接数据库的Connection对象的方式

获取连接对象连接数据库的方式 JDBC编程六步 创建并注册驱动对象 : 告诉Java程序即将要连接的是哪个品牌的数据库(注意使用反射机制加载Driver类时会自动完成驱动的创建和注册)使用注册对象获取连接对象: 表示JVM的进程和数据库进程之间的通道打开了,这属于进程之…

API无代码开发让尘锋SCRM与营销系统集成,提高电商平台客服效率

API无代码开发的力量 随着电商平台业务的日益增长,客服系统的效率和响应速度成为了企业关注的焦点。API无代码开发的出现,为企业提供了一个高效的解决方案。API(Application Programming Interface,应用编程接口)允许不同的软件系统之间进行有…

C++ IO库

IO类 IO对象不能拷贝和赋值 iostream 表示形式的变化: 将100转换成二进制序列 然后格式化输出 x,y共用一块内存 输出的时候用不同的方式解析同一块内存 操作 格式化:内部表示转换为相应字节序列 缓存:要输出的内容放到缓存 编码转换&…

Linux 防火墙,了解就好

目录 安全技术 防火墙的分类 按保护范围划分 按实现方式划分 按网络协议划分 应用层防火墙(7层) 防火墙的工作原理 linux防火墙的基本认识 防火墙工具介绍 1.iptables 2.firewalld 3.nftables 安全技术 —— 入侵检测系统(Intru…

【Java基础系列】BigDecimal入门

一.基本介绍 1.什么是 BigDecimal? BigDecimal 是 Java 中的一个类,用于表示任意精度的十进制数。它属于 java.math 包,并提供了高精度的浮点数运算。与基本数据类型的浮点数(如 float 和 double)不同,BigDecimal 可…