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

【深度学习神经网络学习笔记(三)】向量化编程

向量化编程

    • 向量化编程
    • 前言
    • 1、向量化编程
    • 2、向量化优势
    • 3、正向传播和反向传播

向量化编程

前言

向量化编程是一种利用专门的指令集或并行算法来提高数据处理效率的技术,尤其在科学计算、数据分析和机器学习领域中非常常见。它允许通过一次操作处理整个数组或矩阵的数据,而不是通过循环逐个处理每个元素。这种方法不仅简化了代码,而且能够显著提高程序运行速度,因为它更有效地利用了现代 CPU 的并行计算能力。

备注:本系列文章基于B站课程: 122集付费!CNN、RNN、GAN、GNN、DQN、Transformer、LSTM等八大深度学习神经网络一口气全部学完!学习整理得到。

1、向量化编程

没更新一次梯度时候,在训练期间我们会拥有 m 个样本,那么这样每个样本提供进去都可以做一个梯度计算。所以我们要去做所有样本上的计算结果、梯度等操作。
在这里插入图片描述

2、向量化优势

由于在进行计算的时候,最好不要使用 for 循环去进行计算,使用 Numpy 可以进行更加快速的向量化计算。
在这里插入图片描述
例如:

  • 使用 for 循环

    import numpy as np
    import time
    
    a = np.random.rand(100000)
    b = np.random.rand(100000)
    # 第一种 for 循环
    c = 0
    start = time.time()
    for i in range(100000):
        c += a[i] * b[i]
    end = time.time()
    print(c)
    print("计算耗时:%s" % str((end - start) * 1000) + 'ms')
    
    
  • 使用 np.dot

    import numpy as np
    import time
    
    a = np.random.rand(100000)
    b = np.random.rand(100000)
    d = a * b
    # 向量化运算 np.dot()
    start1 = time.time()
    c1 = np.dot(a, b)
    end1 = time.time()
    print(c1)
    print("计算耗时:%s" % str((end1 - start1) * 1000) + 'ms')
    

运行结果如下:
在这里插入图片描述
可以看到 Numpy 能够充分的利用并行化。

Numpy 中提供了很多函数使用

函数作用
np.ones or np,zeros全为1或者0的矩阵
np.exp指数计算
np.log对数计算
np.abs绝对值计算

所以上述的 m 个样本的梯度更新过程,就是去除掉 for 循环

3、正向传播和反向传播

前面我们所做的整个过程分为两个部分,一个是从前往后的计算出梯度和损失,另一部分是从后往前计算参数的更新梯度值。所以在神经网络中经常会出现这两个概念。

相关文章:

  • 将CUBE或3DL LUT转换为PNG图像
  • 怎么修改node_modules里的文件,怎么使用patch-package修改node_modules的文件,怎么修改第三方库原文件。
  • Staruml软件的介绍安装uml类图的绘制流程
  • Go小技巧易错点100例(二十三)
  • DDR3模块、HDMI、晶振的布局原则
  • 51c视觉~CV~合集4
  • 白帽黑客系列教程之Windows驱动开发(64位环境)入门教程(七)
  • C++初阶——简单实现stack和queue
  • Linux运维——网络管理
  • 【AIGC】使用Python实现科大讯飞语音服务ASR转录功能:完整指南
  • ow rank decomposition如何用于矩阵的分解
  • 【CPP面经】大厂CPP后台开发面试经历
  • vue3:项目创建
  • Ollama部署与常用命令
  • C++初阶:C++入门基础
  • 什么是DrawCall?DrawCall为什么会影响游戏运行效率?如何减少DrawCall?
  • 如何将文件中的一部分段落整体删除
  • Grafana使用日志5--如何重置Grafana密码
  • 基于 sklearn 的均值偏移聚类算法的应用
  • [前端] 学习内容总结,css样式居中以及点击包裹a标签的容器元素也能触发a标签的点击事件
  • 域名网址/超级seo外链
  • 小程序定制开发网站/网络营销策划目的
  • 广州网站建设公司好吗/seo千享科技
  • 许昌做网站公司报价/阿里巴巴指数查询
  • 企业自己做网站方法/廊坊关键词优化平台
  • 网站建设服务费应该做到什么科目/第三方营销平台有哪些