深度学习基础知识

cuda

简介:

CUDA(Compute Unified Device Architecture)是由NVIDIA开发的一种并行计算平台和应用程序编程接口(API)。它允许开发人员利用NVIDIA的GPU(图形处理器)来加速各种计算任务,包括科学计算、机器学习、深度学习、数据分析等。

NVIDIA是一个全球领先的计算技术公司,专注于设计和制造高性能计算设备。除了生产强大的GPU,NVIDIA还提供与其GPU配套使用的软件和工具,如CUDA。通过CUDA,开发人员可以将计算任务划分为多个并行的线程,并在GPU上同时执行这些线程,从而提高计算性能。

cude和显卡驱动的约束关系

cuda与GPU显卡驱动版本一览_cuda版本_小白龙呢的博客-CSDN博客

常说的cuda版本是什么

我们常说的cuda指的是 nvidia cuda toolkit 软件开发包,而不是不是GPU驱动…

相应的,cuda版本也即CUDA工具包的版本,而不是显卡驱动版本,请注意~~

运行cuda应用程序需要有两个前提:

①硬件:支持cuda的显卡, 很显然

②软件:与cuda toolkit兼容的显卡驱动程序

cuda每个版本都对应一个最低版本的显卡驱动程序

深度学习基础知识_第1张图片

深度学习基础知识_第2张图片

深度学习基础知识_第3张图片

cuDNN

cuDNN(CUDA Deep Neural Network library)是NVIDIA推出的针对深度神经网络的加速库。它是基于CUDA平台的一个高性能库,旨在提供针对卷积神经网络(CNN)和循环神经网络(RNN)等深度学习模型的优化算法和函数。

cuDNN使用GPU加速深度神经网络计算,提供了一系列高效的算法和函数,如卷积、池化、激活函数等,以及与深度学习相关的高级功能,例如批量归一化和反向传播。通过使用cuDNN,开发人员可以利用GPU的并行计算能力来加速深度学习训练和推断过程,从而大幅缩短模型训练时间和预测时间。

cuDNN支持各种深度学习框架,包括TensorFlow、PyTorch、Caffe等,并且与CUDA密切结合,充分发挥GPU的计算潜力。cuDNN还提供了一些优化策略和技术,如自动调整算法、内存管理和低精度计算等,以进一步提升深度学习模型的性能和效率。

总之,cuDNN是NVIDIA提供的一个高性能库,专门用于深度神经网络的加速。它利用GPU并行计算能力,提供了一系列优化算法和函数,可以大幅加快深度学习模型的训练和推断速度,并与各种深度学习框架紧密集成,提供更高效的深度学习解决方案。

深度学习环境配置—显卡驱动、pytorch、cuda和cudnn之间的配置关系_pytorch和cuda的关系_心之所向521的博客-CSDN博客

机器学习和深度学习联系

机器学习和深度学习比较:

  1. 数据依赖:深度学习需要大量的数据,传统机器学习需要少于深度学习
  2. 硬件依赖:深度学习依赖高端机器,传统机器学习可以跑在低端机器上
  3. 特征工程:深度学习能自动学习特征,传统机器学习需要人工提取特征,针对性编码
  4. 解决问题的办法:深度学习一次性解决所有问题,传统机器学习分解问题,逐个解决,组合得出结果
  5. 执行时间:深度学习需要很长的训练时间,传统机器学习较短。测试时间则相反
  6. 可解释性:深度学习自动提取特征,无法解释参数,传统机器学习参数清晰

并没有讲清楚两者区别,看完文章结合个人理解:
机器学习:需要人工准备各种特征数据,事先规划好训练的各种参数
深度学习:不需要人为准备特征,神经网络会提取数据,并且不需要人为干预参数。学习过程会自动生成参数,调整参数。

以目标检测为例:机器学习需要规定图片的像素,长宽比例,物体轮廓,合格的参数标准等。而深度学习的卷积神经对图片卷积,池化提取各种特征,正向传播,反向传播调整参数,整个过程不需要人为参与调整参数。

传统机器学习方法相比,深度学习的一个主要优势是可以处理不同长度的数据

推理

为什么要warmup?

 model.warmup(imgsz=(1 if pt or model.triton else bs, 3, *imgsz))  # warmup

概念

一文看懂机器学习指标:准确率、精准率、召回率、F1、ROC曲线、AUC曲线

精确率 Precision

所有被预测为正的样本中实际为正的样本的概率

分子:预测为正,实际为正的样本

分母:预测为正的样本

召回率 Recall

实际为正的样本中被预测为正样本的概率

分子:预测为正,实际为正的样本

分母:实际为正的样本

https://blog.csdn.net/tugouxp/article/details/120064011

一文让你彻底理解准确率,精准率,召回率,真正率,假正率,ROC/AUC - AIQ

机器学习关键组件

首先介绍一些核心组件。无论什么类型的机器学习问题,都会遇到这些组件:

  1. 可以用来学习的数据(data);
  2. 如何转换数据的模型(model);
  3. 一个目标函数(objective function),用来量化模型的有效性;
  4. 调整模型参数以优化目标函数的算法(algorithm)。

标量、向量和张量是在数学和物理学中常见的概念。

● 标量:标量是一个只有大小而没有方向的量。它可以用一个实数来表示,例如温度、时间、质量等。标量通常用小写字母表示,如 a。

● 向量:向量是有大小和方向的量。它可以用一组有序的实数来表示,这些实数称为分量。向量通常用粗体的小写字母表示,如 v。在三维空间中,向量可以表示为 (x, y, z) 的形式,其中 x、y 和 z 分别是向量在坐标轴上的分量。

● 张量:张量是多维数组,可以具有任意数量的维度。每个维度可以包含多个元素,这些元素可以是实数或复数。张量可以表示为一个多维矩阵或超矩阵。张量的阶指示了它具有的维度数量。例如,0阶张量是标量,1阶张量是向量,2阶张量是矩阵,以此类推

过拟合和欠拟合

过拟合(overfitting)和欠拟合(underfitting)是机器学习中常见的问题,它们指的是模型在训练数据上表现良好但在新数据上表现较差的情况。

  • 过拟合:当一个模型过度地适应了训练数据集中的噪声或细节时,就会发生过拟合。这意味着模型在训练数据上表现出很高的准确度或低的误差,但在未见过的数据上表现较差。过拟合的模型可能对训练数据中的特异性特征进行了过度拟合,无法推广到更普遍的情况。

过拟合的原因可能是模型过于复杂,参数数量过多,导致模型具有较高的灵活性。解决过拟合问题的方法包括增加训练数据、正则化技术(如L1正则化、L2正则化)、使用更简单的模型(降低模型复杂度)或者提前停止训练等。

  • 欠拟合:相反,当一个模型无法捕捉到数据中的基本模式和规律时,就会发生欠拟合。这意味着模型在训练数据上的表现不佳,其准确度较低或误差较高。欠拟合的模型可能过于简单,无法很好地拟合数据中的复杂关系。

欠拟合通常是由于模型复杂度不足或训练数据量不足造成的。解决欠拟合问题的方法包括增加模型的复杂度、使用更多的特征或收集更多的训练数据。

在机器学习中,我们追求一个适当的模型复杂度,使其能够在未见过的数据上达到最佳性能,即避免过拟合和欠拟合。这需要找到一个平衡点,以获得对训练数据和新数据都具有良好泛化能力的模型。

监督学习

监督学习(supervised learning)和非监督学习(unsupervised learning)是机器学习中两种常见的学习范式,它们有不同的特点和应用场景。

  • 监督学习:在监督学习中,我们有一组带有标签(标记)的训练样本作为输入,并且目标是根据这些已知标签的样本来预测未知样本的标签。也就是说,我们提供给模型一对输入数据和其对应的目标输出,并通过学习从输入到输出之间的关系来进行预测。监督学习的目标通常是分类(将样本分为不同的类别)或回归(预测连续值)。常见的监督学习算法包括决策树、支持向量机、神经网络和逻辑回归等。
  • 非监督学习:与监督学习不同,非监督学习不依赖于已知的标签信息。在非监督学习中,我们只提供无标签的训练数据,并试图从数据中发现隐藏的结构、模式或关系。非监督学习的目标通常是聚类(将相似的样本分组)或降维(将高维数据映射到低维空间)。常见的非监督学习算法包括K均值聚类、主成分分析(PCA)、高斯混合模型等。

监督学习和非监督学习都在机器学习中发挥重要作用。监督学习适用于已有标签的数据集,可以进行分类和回归任务。非监督学习适用于无标签数据集,可以帮助我们发现数据中的结构和模式,探索数据的特征和相似性,以及进行数据预处理和降维等任务。有时候,监督学习和非监督学习也可以结合使用,形成半监督学习或强化学习等学习范式。

你可能感兴趣的:(深度学习,人工智能)