【深度学习】向量化

news2024/9/22 15:49:48

1. 什么是向量化

        向量化通常是消除代码中显示for循环语句的技巧,在深度学习实际应用中,可能会遇到大量的训练数据,因为深度学习算法往往在这种情况下表现更好,所以代码的运行速度非常重要,否则如果它运行在一个大的数据集上面,代码可能花费很长时间去运行。

        什么是向量化?在logistic回归中,需要计算z=w^{T}x+b,w、x均为列向量。如果为非向量化实现

z=0
for i in range(n_x):
    z+=w[i]*x[i]
    z+=b

        如果为向量化实现,会直接计算w^{T}x,后面直接加上b:

z=np.dot(w,x)+b

         经过时间计算对比发现,非向量化的版本花费了300倍向量版本的时间:

         可扩展深度学习实现实在GPU上做的,GPU也叫做图像处理单元。而GPU和CPU都有并行化的指令,有时候叫做SIMD指令,意思是单指令流多数据流,意思是如果使用了这样的内置函数np.function或者其他能去掉for循环的函数,这样python的numpy能充分利用并行化更快地计算。GPU相比较于CPU更擅长SIMD计算。

2. 向量化的更多例子

例1:

当编写神经网络时,尽可能的避免for循环。若我们想要计算u=Av,即u_{i}=\sum_{i} \sum_{j}A_{ij}v_{j}

# 非向量化
for i in range (5)
    for j in range (5)
        u[i]+=A[i][j]*v[j]

# 向量化
u=np.dot(A,v)

例2:

假设已经有一个向量vv=[v_{1},v_{2},...,v_{n}]^{T},求u=[e^{v_{1}} , e^{v_{2}}, ..., e^{v_{n}}]^{T},非向量化计算方法:

u=np.zeros((n,1))
for i in range (n):
    u[i]=math.exp(v[i])

向量化计算方法:

import numpy as np
u=np.exp(v)

np.log(v)
np.abs(v)
np.maximux(v,0)

例3:

m个样本的梯度下降算法

 3. 向量化 logistic 回归(Vectorizing Logistic Regression)

        假设有m个样本,为了实现前向传播,需要计算出m个训练样本的预测结果。在下面的例子中,当加上一个常数b的时候,会将其自动拓展成一个1xm的向量,在python中也称为 “Broadcasting”。

 X=[x^{(1)},x^{(2)},...,x^{m}]

Z=[z^{(1)},z^{(2)},...,z^{m}]=w^{T}X+[b,b,b,...,b]_{1\cdot m}

A=[a^{(1)},...,a^{(m)}]=\sigma(z)

Z=np.dot(w.T,X)+b

 4. 向量化 logistic 回归的梯度输出

Z=np.dot(w.T,x)+b
A=σ(Z)
dZ=A-Y
dw=np.dot(X,dZ.T)/m
db=np.sum(dZ)/m
w:=w-a*dw
b:=w-a*dw

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2105928.html

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

相关文章

英伟达AI超级计算机SuperPod:H100→GH200→GB200

英伟达的 DGX SuperPOD 是一台完整的数据中心级 AI 超级计算机,采用模块化的设计,支持不同规模大小的设计。每台超级计算机都在出厂前完成了搭建、布线和测试,从而大大加快了在用户数据中心的部署速度 。 NVIDIA DGX SuperPOD是下一代数据中心…

【设计模式】单例、工厂、策略、责任链模式

1.单例模式 单例模式确保某个类只有一个实例,主要使用有两种:懒汉式单例、饿汉式单例 单例模式有以下特点:   1、单例类只能有一个实例。   2、单例类必须自己创建自己的唯一实例。   3、单例类必须给所有其他对象提供这一实例。 使用场景: 数据库连接池:单例模式…

Python 算法交易实验87 QTV200日常推进-沪深300的交易量统计

说明 上一篇 讲到,就全市场的交易量来看,近3年也看不出很奇怪的地方;因此,交易量[支持度]不足而导致的策略失灵似乎也说不通。 为了进一步确认,我打算: 1 获取沪深300成分股,只统计成分股的交…

RDD、DataFrame、DataSet(Spark)

RDD、DataFrame、DataSet RDD (弹性分布式数据集): 版本: Spark的初始版本,1.0开始提供。特性: RDD是Spark的基础数据结构,表示一个不可变的分布式对象集合。可以通过转换操作(如map、filter、flatMap)和行动操作&…

outlook设置规则后,规则无法自动运行的解决方案

outlook设置规则后,规则无法自动运行的解决方案 问题描述解决方案说明 问题描述 在outlook设置规则对邮件进行文件夹移动时,有时会出现规则无法自动运行的情况。出现这种情况有很多原因和解决方案,本文列出其中一种。 解决方案 outlook版本…

吴恩达深度学习笔记:卷积神经网络(Foundations of Convolutional Neural Networks)1.9-1.10

目录 第四门课 卷积神经网络(Convolutional Neural Networks)第一周 卷积神经网络(Foundations of Convolutional Neural Networks)1.9 池化层(Pooling layers)1.10 卷 积 神 经 网 络 示 例 ( …

JDBC的介绍

一 JDBC的简介 1.1 ODBC的出现 早期的数据库应用程序开发,因为没有通用的针对与数据库的编程接口,所以,开发人员需要学习相关数据库的API,才可以进行应用程序,这样增加了学习成本和开发周期。因此整个开发市场一直在呼…

QT creator堆栈窗体demo

创建项目选择QDialog,不要选QMainWindow #ifndef DIALOGSTACK_H #define DIALOGSTACK_H#include <QDialog> #include <QListWidget>//列表框 #include <QStackedWidget>//堆栈窗体 #include <QLabel>QT_BEGIN_NAMESPACE namespace Ui { class DialogSt…

集成电路学习:什么是NOR Flash Memory非易失性闪存存储器

一、NOR Flash Memory&#xff1a;非易失性闪存存储器 NOR Flash Memory&#xff0c;即非易失性闪存存储器的一种&#xff0c;是Flash存储器的一个重要分支。Flash存储器&#xff0c;又称为闪存&#xff0c;结合了ROM&#xff08;只读存储器&#xff09;和RAM&#xff08;随机存…

力扣面试150 分隔链表 模拟

Problem: 86. 分隔链表 &#x1f468;‍&#x1f3eb; 参考题解 Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNo…

SQL - SQL优化

在sql查询中为了提高查询效率&#xff0c;我们常常会采取一些措施对查询语句进行sql优化&#xff0c;下面总结的一些方法&#xff0c;有需要的可以参考参考 一、查询SQL尽量不要使用select *&#xff0c;而是具体字段 // 建议 SELECT id,user_name,age,tel FROM user// 不建议…

UEFI BIOS之SMBIOS

SMBIO spec: SMBIOS Specification (dmtf.org) https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_3.5.0.pdf SMBIOS SMBIOS&#xff08;System Management BIOS&#xff09;是一种标准化的系统信息数据结构&#xff0c;旨在提供有关计算机硬件配置、…

Java SPI机制源码

文章目录 SPI简介使用案例SPI的应用SPI机制源码SPI与类加载器双亲委派机制 SPI简介 Java的SPI&#xff08;Service Provider Interface&#xff09;机制允许第三方为应用程序提供插件式的扩展&#xff0c;而不需要修改应用程序本身的代码&#xff0c;从而实现了解耦。Java标准库…

HUAWEI华为MateBook B5-420 i5 集显(KLCZ-WXX9,KLCZ-WDH9)原装出厂Windows10系统文件下载

适用型号&#xff1a;KLCZ-WXX9、KLCZ-WDH9 链接&#xff1a;https://pan.baidu.com/s/12xnaLtcPjZoyfCcJUHynVQ?pwdelul 提取码&#xff1a;elul 华为原装系统自带所有驱动、出厂主题壁纸、系统属性联机支持标志、系统属性专属LOGO标志、华为浏览器、Office办公软件、华为…

[数据集][目标检测]石油泄漏检测数据集VOC+YOLO格式6633张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;6633 标注数量(xml文件个数)&#xff1a;6633 标注数量(txt文件个数)&#xff1a;6633 标注…

网络安全硬件

传统防火墙 传统防火墙 技术&#xff1a;访问控制、代理技术、会话机制 工作层次&#xff1a;应用层一下 防御模式&#xff1a;通过防御设备划分边界&#xff0c;基于IP/端口和特征进行判断&#xff1b;以隔离为基础&#xff0c;基于信任原则构建安全框架&#xff1b;以防护为…

【Rust】007-包管理与模块管理

【Rust】007-包管理与模块管理 文章目录 【Rust】007-包管理与模块管理一、包管理器&#xff1a;Cargo1、简介Cargo 官方文档仓库 2、项目初始化3、写一个小程序任务目标寻找合适的库添加库到我们的项目中代码实现cargo run运行 二、模块管理1、概述2、文件作为模块第一步&…

可靠性定义

一、广义可靠性 包含以下三个方面 1、可靠性&#xff08;Reliability&#xff09; 定义&#xff1a;产品、系统或组件在预定条件下和规定时间内&#xff0c;完成既定功能的能力。 平均故障间隔时间&#xff08;Mean Time Between Failures, MTBF&#xff09;&#xff1a; …

每天五分钟深度学习:广播机制(以python语言为例)

本文重点 因为向量化的计算方式导致效率的提升,所以现在很多时候,我们都是用向量化的计算,但是向量化计算有一个问题让人头痛就是维度的问题,本节课程我们将讲解python中的广播机制,你会发现这个机制的优秀之处。 代码实例 import numpy as np a=np.random.randn(3,4) …

使用 Milvus 和 Streamlit 搭建多模态产品推荐系统

我们可以使用 Milvus 搭建多模态 RAG 应用&#xff0c;用于产品推荐系统。用户只需简单上传一张图片并输入文字描述&#xff0c;Google 的 MagicLens 多模态 Embedding 模型就会将图像和文本编码成一个多模态向量。然后&#xff0c;使用这个向量从 Milvus 向量数据库中找到最相…