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

向量化编程

向量化编程

前言

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

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

1、向量化编程

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

2、向量化优势

由于在进行计算的时候,最好不要使用 for 循环去进行计算,使用 Numpy 可以进行更加快速的向量化计算。

例如:

  • 使用 for 循环

    python 复制代码
    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

    python 复制代码
    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、正向传播和反向传播

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

相关推荐
Francek Chen1 小时前
【深度学习计算机视觉】07:单发多框检测(SSD)
人工智能·pytorch·深度学习·计算机视觉·单发多框检测
dami_king1 小时前
RTX4090算力应用-3D
人工智能·深度学习·3d·ai
mCell9 小时前
长期以来我对 LLM 的误解
深度学习·llm·ollama
_pinnacle_10 小时前
打开神经网络的黑箱(三) 卷积神经网络(CNN)的模型逻辑
人工智能·神经网络·cnn·黑箱·卷积网络
Ada's10 小时前
深度学习在自动驾驶上应用(二)
人工智能·深度学习·自动驾驶
机器学习之心12 小时前
198种组合算法+优化BiLSTM神经网络+SHAP分析+新数据预测+多输出!深度学习可解释分析,强烈安利,粉丝必备!
深度学习·神经网络·shap分析·新数据预测·198种组合算法·优化bilstm神经网络·多输出
charieli-fh12 小时前
指令微调数据评估与影响:构建高质量大语言模型的关键
人工智能·深度学习·语言模型
Coovally AI模型快速验证12 小时前
从避障到实时建图:机器学习如何让无人机更智能、更安全、更实用(附微型机载演示示例)
人工智能·深度学习·神经网络·学习·安全·机器学习·无人机
没有梦想的咸鱼185-1037-166313 小时前
【遥感技术】从CNN到Transformer:基于PyTorch的遥感影像、无人机影像的地物分类、目标检测、语义分割和点云分类
pytorch·python·深度学习·机器学习·数据分析·cnn·transformer
钟爱蛋炒饭13 小时前
基于深度学习神经网络协同过滤模型(NCF)的视频推荐系统
python·神经网络·机器学习