AI算法(深度学习)

训练模型

过拟合

梯度下降

梯度爆炸

https://blog.csdn.net/weixin_46570668/article/details/142419167?spm=1001.2014.3001.5501

https://blog.csdn.net/qq_36816848/article/details/122286610?ops_request_misc=elastic_search_misc\&request_id=d65686e8ba94d881b3eb9b9f35f5f362\&biz_id=0\&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive\~default-1-122286610-null-null.142^v102^pc_search_result_base5\&utm_term=深度学习\&spm=1018.2226.3001.4187

https://www.bilibili.com/video/BV18P4y1j7uH/?spm_id_from=333.337.search-card.all.click\&vd_source=28b09f0a42afe4fa315dca8204cc8c3b

1、什么是超参数?

超参数∶在机器学习的上下文中,超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据。通常情况下,需要对超参数进行优化,给学习机选择---组最优超参数,以提高学习的性能和效果。

超参数具体来讲比如算法中的学习率(learning rate)、梯度下降法迭代的数量 (iterations)、隐藏层数目(hidden layers)、隐藏层单元数目、激活函数( activation function)都需要根据实际情况来设置,这些数字实际上控制了最后的参数和的值,所以它们被称作超参数。

![[Pasted image 20251119163009.png]]

![[Pasted image 20251119163626.png]]

![[Pasted image 20251119163635.png]]

2、如何解决过拟合和欠拟合

1. 过拟合 (Overfitting)

过拟合是指模型在训练数据上表现得非常好,但在新的、未见过的数据(测试集)上表现较差。它是由于模型学习到了训练数据中的噪声或无关特征,而不是捕捉到数据的实际规律。

解决过拟合的方法:
  • 增加训练数据:更多的训练数据可以帮助模型更好地学习数据的真实模式,减少对噪声的记忆。

  • 简化模型:使用较小的模型(减少参数数量),避免过度复杂的模型拟合训练数据中的噪声。

  • 正则化:通过正则化方法(如L1、L2正则化)来惩罚过于复杂的模型,限制模型的复杂度。

  • 使用交叉验证:通过交叉验证来选择模型的最佳超参数,避免模型过度拟合某一个训练集。

  • 提前停止(Early Stopping):在训练过程中监控验证集的性能,当验证集性能开始下降时停止训练,以避免过拟合。

2. 欠拟合 (Underfitting)

欠拟合是指模型过于简单,无法有效捕捉数据的潜在模式。它通常是由于模型的复杂度不足,无法学习到训练数据中的重要特征,导致训练和测试集上的表现都不好。

解决欠拟合的方法:
  • 增加模型复杂度:使用更复杂的模型,例如增加更多的特征或使用更复杂的算法。

  • 减少正则化:如果模型使用了正则化,可以尝试减少正则化强度,这样模型可以更加灵活地拟合训练数据。

  • 增加特征:通过特征工程添加更多有意义的特征,帮助模型更好地捕捉数据的模式。

  • 训练更长时间:增加训练周期,使模型有更多的时间来学习训练数据的规律。

总结来说,过拟合 是模型过于复杂,学习到了噪声,而欠拟合 则是模型过于简单,无法捕捉数据的潜在规律。通过调整模型的复杂度、增加训练数据、正则化、特征工程等方法,可以有效地解决这两种问题。

(正则化的基本思想是在模型的目标函数(例如损失函数)中加入一个额外的项,该项对模型的参数施加约束。通过这种约束,模型不容易过度拟合训练数据的细节或噪声。正则化通常通过控制模型的复杂度(例如权重的大小)来实现这一点。)

3、CNN原理、特点,分类和回归区别,CNN在图像中的应用

CNN原理

卷积神经网络(Convolutional Neural Networks, CNN)是一种深度学习模型,广泛用于处理图像、视频等多维数据。它的基本原理包括以下几个方面:

  1. 卷积层(Convolutional Layer):卷积层是CNN的核心部分,通过使用卷积核(滤波器)对输入数据进行卷积操作,从而提取局部特征。卷积操作可以捕捉图像中的边缘、纹理等低级特征。

  2. 池化层(Pooling Layer) :池化层用于减少特征图的空间尺寸,降低计算量和防止过拟合。最常见的池化方法是最大池化(Max Pooling)和平均池化(Average Pooling)。
    (池化在一个小窗口内取"代表值"(最大、平均等),用它替代这个窗口的全部内容。

  3. 激活函数(Activation Function):在卷积层和池化层之后,通常使用非线性激活函数,如ReLU(Rectified Linear Unit),来引入非线性特征,增强模型的表达能力。

  4. 全连接层(Fully Connected Layer):在CNN的最后,通常会使用全连接层将卷积层提取到的特征映射到最终的输出层进行分类或回归任务。

  5. 输出层(Output Layer):对于分类任务,输出层一般使用Softmax函数进行多类分类;对于回归任务,输出层通常使用线性激活函数输出一个连续值。

CNN特点

  • 局部连接:卷积层的神经元只与输入图像的一小块区域(感受野)连接,从而减少计算复杂度和参数量。

  • 权重共享:同一卷积核在整个图像上进行扫描,减少了模型的参数量,提高了计算效率。

  • 平移不变性:CNN对图像中物体的位置变化具有一定的容忍度,因此它具有一定的平移不变性。

  • 层次结构:CNN可以通过多层次的卷积和池化操作逐渐提取图像的低级和高级特征,从而有效地捕捉图像的空间结构。

CNN分类和回归的区别

  • 分类任务

    • 目标:将输入数据分配到预定义的类别中。

    • 输出层:一般使用Softmax激活函数,输出一个类别的概率分布,选择最大概率的类别作为预测结果。

    • 损失函数:通常使用交叉熵损失函数(Cross-Entropy Loss)。

  • 回归任务:(比如房价预测)

    • 目标:预测一个连续的数值输出。

    • 输出层:一般使用线性激活函数,输出一个连续值。

    • 损失函数:通常使用均方误差损失函数(Mean Squared Error Loss)。

CNN在图像中的应用

CNN在图像处理中有着广泛的应用,包括但不限于:

  1. 图像分类:将图像分配到一个类别标签中,如猫狗分类、手写数字识别等。

    • 例如:使用CNN进行MNIST手写数字识别,或使用ImageNet数据集进行物体分类。
  2. 目标检测:识别图像中的多个物体并标记它们的位置。常用算法包括YOLO(You Only Look Once)、Faster R-CNN等。

    • 例如:在街景图像中检测并标记出汽车、行人等物体。
  3. 图像分割:将图像划分为多个有意义的区域,常用于医学图像分割、语义分割等任务。

    • 例如:使用U-Net网络进行医学图像分割,自动分割肿瘤区域。
  4. 图像生成:通过生成对抗网络(GAN)等技术,CNN也可以用于图像生成任务,如图像风格转换、图像超分辨率等。

    • 例如:将低分辨率图像转换为高清图像,或者进行风格迁移。
  5. 面部识别与表情识别:CNN可以提取面部图像中的特征,用于识别个体或分析面部表情。

    • 例如:人脸识别技术用于安防监控,表情识别用于情感分析。
  6. 图像增强:CNN还可用于图像的增强与修复任务,如去噪、超分辨率、图像修复等。

    • 例如:通过超分辨率模型提高图像清晰度,或用生成对抗网络进行图像修复。

这些应用充分体现了CNN在图像处理中的强大功能和广泛的适用性。

4、激活函数以及应用场景

激活函数(Activation functions)对于人工神经网络模型去学习、理解非常复杂和非线性的函数来说具有十分重要的作用。它们将非线性特性引入到我们的网络中。

在神经网络中,激活函数决定了每个神经元的输出。没有激活函数,神经网络仅仅是一个线性变换,无论有多少层,最终的输出都是输入的线性组合,这使得无论网络有多深,它的表示能力仍然相当有限。

激活函数具体作用:

  1. 引入非线性:激活函数使得神经网络能够学习和表示复杂的非线性关系。如果没有激活函数,神经网络无论有多少层,最终的计算结果只是输入的线性变换。通过激活函数,网络能够拟合更复杂的非线性函数,从而处理更加复杂的任务。

  2. 增加模型的表达能力:非线性激活函数使得神经网络能够表示更广泛的函数,比如分类、回归任务中的复杂模式。这是深度学习相对于传统线性模型(如线性回归)的优势。

  3. 帮助网络学习复杂特征 :在计算机视觉、语音识别等任务中,数据的特征通常是高度非线性的,激活函数使得神经网络能够从这些数据中提取到复杂的特征。

    ![[Pasted image 20251119170959.png]]

5、softmax公式

![[Pasted image 20251119171056.png]]

6、反向传播,梯度

梯度 (Gradient)

梯度是损失函数关于网络参数(如权重和偏置)的导数。它表示了在当前参数值下,损失函数对参数变化的敏感程度。通过梯度的方向和大小,可以调整参数值以减小损失函数。

  • 梯度下降:使用负梯度方向来更新参数,逐步减小损失函数。常见的优化方法有:

    • 普通梯度下降(SGD):每次使用整个数据集计算梯度更新参数。

    • Mini-batch梯度下降:每次用小批量数据计算梯度,结合了批量和随机梯度下降的优点。

    • 自适应优化算法 (如Adam、Adagrad、RMSProp):通过调整学习率来加速收敛。

      ![[Pasted image 20251119171510.png]]

梯度的大小和方向决定了模型训练的效率和收敛速度,因此选择合适的激活函数和优化算法对于模型的表现至关重要。

激活函数与应用场景

  • Sigmoid: 适用于输出概率(如二分类问题),但不适合深层网络。

  • ReLU及其变种: 在大多数现代神经网络中使用,特别是在卷积神经网络(CNN)和深度网络中,避免了梯度消失问题。

  • Tanh: 常用于隐层的神经元,特别是需要输出范围为-1到1之间的场景,如循环神经网络(RNN)。

  • Softmax: 多分类问题中,通常用于网络的输出层,将输出值转化为概率分布。

🔹 1. 什么是池化层(Pooling Layer)?

池化层是深度学习中用来降低特征图空间尺寸(H×W),保留主要特征、减少参数与计算量的一类操作。

简单理解:

在一个小窗口内取"代表值"(最大、平均等),用它替代这个窗口的全部内容。

池化层常用于 CNN 网络(如 VGG、ResNet、MobileNet)中,与卷积层交替使用。

🔹 2. 池化层的原理是什么?

池化(Pooling)是一种局部区域聚合操作。

⭐ 基本过程

对于输入特征图(feature map),池化层会:

  1. 选择一个窗口大小(如 2×23×3

  2. 按一定步长(如 stride=2)滑动

  3. 在窗口覆盖区域内执行一个聚合操作(max/average)

  4. 得到更小的输出特征图

⭐ 数学描述

以输出位置 ((i,j)) 为例:

最大池化(Max Pooling)

y_{i,j}=\\max_{(m,n) \\in \\text{window}} x_{m,n}

平均池化(Average Pooling)

y_{i,j}=\\frac{1}{K} \\sum_{(m,n) \\in \\text{window}} x_{m,n}

其中 (K) 为窗口面积。

🔹 3. 为什么要使用池化层?(作用)

池化层主要有 4 个作用

✔(1)降低特征图维度(Downsampling)

减少 H×W 大小

→ 降低计算量

→ 减少参数

→ 节省显存

例如 2×2, stride=2 的 max pooling

会让特征图尺寸直接减半。

✔(2)提取主要特征,提高鲁棒性

池化可以保留"区域的主要特征",对噪声不敏感。

例如 max pooling 只取最显著的值,更关注局部最重要特征。

✔(3)增加感受野(Receptive Field)

池化会扩大每个特征所"看见"的原图区域,使模型从局部到全局更有效。

✔(4)减少过拟合

通过特征的压缩和信息丢弃,起到类似正则化的效果。

🔹 4. 池化层的常见类型

⭐ 1. 最大池化(Max Pooling)------最常用

取窗口区域中最大的值

适合:

  • 图像任务(CNN)

  • 特征凸显更强烈的场景

例如提取边缘、纹理、目标轮廓。


⭐ 2. 平均池化(Average Pooling)

取窗口区域平均值

适合:

  • 特征平滑

  • 传统 CNN,如 LeNet、早期 AlexNet

但现代 CNN 更偏向使用 max pooling。


⭐ 3. 全局平均池化(Global Average Pooling, GAP)

H\\times W \\to 1

对每个通道做一次全局平均。

优点

  • 无参数

  • 大幅减少全连接层使用

  • 大量用于 ResNet、MobileNet


⭐ 4. L2 池化 / 混合池化

较少使用,用于某些研究工作。


🔹 5. 池化层与卷积层的区别

项目 卷积 池化
是否有参数 ✔ 有 ✘ 无
是否学习权重 ✔ 是 ✘ 否
功能 学习特征 压缩特征
表达能力
是否影响通道数 可以 通常不改变

简单来说:

卷积学习特征,池化压缩特征。


🔹 6. 池化层的优点与缺点

✔ 优点

  • 计算更快

  • 提高不变性(位置、噪声)

  • 减少过拟合

  • 扩大感受野

✘ 缺点

  • 信息损失(尤其是 max pooling)

  • 破坏空间结构(不利于一些任务)

  • 近年一些模型(如 ConvNeXt)用 stride-conv 替代 pool

🔹 7. 简短总结(方便写论文)

池化层是一种无参数的局部聚合操作,通过最大值或平均值对局部区域进行下采样,从而降低特征图的空间维度、扩大感受野、提升特征的平移不变性并减少过拟合。最常见的池化方式包括最大池化、平均池化和全局平均池化。

LSTM

LSTM,全称 Long Short Term Memory (长短期记忆) 是一种特殊的循环神经网络(由RNN发展而来)

STM的设计或多或少的借鉴了人类对于自然语言处理的直觉性经验。要想了解LSTM的工作机制,可以先阅读一下一个(虚构的)淘宝评论:

"这个笔记本非常棒,纸很厚 ,料很足,用笔写起来手感非常舒服,而且没有一股刺鼻的油墨味 ;更加好的是这个笔记本不但便宜做工优良,我上次在别家买的笔记本裁纸都裁不好,还会割伤手......"

如果让你看完这段话以后马上转述,相信大多数人都会提取出来这段话中几个重要的关键词"纸好","没味道","便宜"和"做工好",然后再重新组织成句子进行转述。这说明了以下两点:

  1. 在一个时间序列中,不是所有信息都是同等有效的,大多数情况存在"关键词"或者"关键帧"
  2. 我们会在从头到尾阅读的时候"自动"概括已阅部分的内容并且用之前的内容帮助理解后文

基于以上这两点,LSTM的设计者提出了"长短期记忆"的概念------只有一部分的信息需要长期的记忆,而有的信息可以不记下来。同时,我们还需要一套机制可以动态的处理神经网络的"记忆",因为有的信息可能一开始价值很高,后面价值逐渐衰减,这时候我们也需要让神经网络学会"遗忘"特定的信息

一个普通的,使用tanh函数的RNN可以这么表示:

在这里,我们可以看到A在 𝑡−1 时刻的输出值 ℎ𝑡−1 被复制到了 𝑡 时刻,与 𝑡 时刻的输入 𝑥𝑡 整合后经过一个带权重和偏置的tanh函数后形成输出,并继续将数据复制到 𝑡+1 时刻......

与上图朴素的RNN相比,单个LSTM单元拥有更加复杂的内部结构和输入输出:

在上图中,每一个红色圆形代表对向量做出的操作(pointwise operation, 对位操作),而黄色的矩形代表一个神经网络层,上面的字符代表神经网络所使用的激活函数

point-wise operation 对位操作

如果我要对向量<1, 2, 3> 和 <1, 3, 5>进行逐分量的想成操作,会获得结果 <1, 6, 15>
layer 函数层

一个函数层拥有两个属性:权重向量(Weight) 和 偏置向量(bias),对于输入向量 𝐴 的每一个分量 𝑖 , 函数层会对其进行以下操作(假设激活函数为 𝐹(𝑥) ): 𝑂𝑢𝑡𝑝𝑢𝑡𝑖=𝐹(𝑊𝑖⋅𝐴𝑖+𝑏𝑖)

常见的激活函数(也就是套在最外面的 𝐹(𝑥) )有ReLU(线性修正单元),sigmoid(写作 𝜎 ),和 tanh

LSTM的关键:单元状态

LSTM能够从RNN中脱颖而出的关键就在于上图中从单元中贯穿而过的线 ------神经元的隐藏态(单元状态),我们可以将神经元的隐藏态简单的理解成递归神经网络对于输入数据的"记忆",用 𝐶𝑡 表示神经元在 𝑡 时刻过后的"记忆",这个向量涵盖了在 𝑡+1 时刻前神经网络对于所有输入信息的"概括总结"

接下来会描述一下LSTM四个函数层分别在做些什么

LSTM_1 遗忘门

对于上一时刻LSTM中的单元状态来说,一些"信息"可能会随着时间的流逝而"过时"。为了不让过多记忆影响神经网络对现在输入的处理,我们应该选择性遗忘一些在之前单元状态中的分量------这个工作就交给了"遗忘门"

每一次输入一个新的输入,LSTM会先根据新的输入和上一时刻的输出决定遗忘掉之前的哪些记忆------输入和上一步的输出会整合为一个单独的向量,然后通过sigmoid神经层,最后点对点的乘在单元状态上。因为sigmoid 函数会将任意输入压缩到 (0,1) 的区间上,我们可以非常直觉的得出这个门的工作原理 ------ 如果整合后的向量某个分量在通过sigmoid层后变为0,那么显然单元状态在对位相乘后对应的分量也会变成0,换句话说,"遗忘"了这个分量上的信息;如果某个分量通过sigmoid层后为1,单元状态会"保持完整记忆"。不同的sigmoid输出会带来不同信息的记忆与遗忘。通过这种方式,LSTM可以长期记忆重要信息 ,并且记忆可以随着输入进行动态调整

下面的公式可以用来描述遗忘门的计算,其中 𝑓𝑡 就是sigmoid神经层的输出向量:

𝑓𝑡=𝜎(𝑊𝑓⋅[ℎ𝑡−1,𝑥𝑡]+𝑏𝑓)

LSTM_2 & 3 记忆门

记忆门是用来控制是否将在 𝑡时刻(现在)的数据并入单元状态中的控制单位。首先,用tanh函数层将现在的向量中的有效信息提取出来,然后使用(图上tanh函数层左侧)的sigmoid函数来控制这些记忆要放"多少"进入单元状态。这两者结合起来就可以做到:

  1. 从当前输入中提取有效信息
  2. 对提取的有效信息做出筛选,为每个分量做出评级(0 ~ 1),评级越高的最后会有越多的记忆进入单元状态

下面的公式可以分别表示这两个步骤在LSTM中的计算:

  1. 𝐶𝑡′=tanh⁡(𝑊𝑐⋅[ℎ𝑡−1,𝑥𝑡]+𝑏𝑐)

  2. 𝑖𝑡=𝜎(𝑊𝑖⋅[ℎ𝑡−1,𝑥𝑡]+𝑏𝑖)

LSTM_4 输出门

输出门,顾名思义,就是LSTM单元用于计算当前时刻的输出值的神经层。输出层会先将当前输入值与上一时刻输出值整合后的向量(也就是公式中的 [ℎ𝑡−1,𝑥𝑡] )用sigmoid函数提取其中的信息,接着,会将当前的单元状态通过tanh函数压缩映射到区间(-1, 1)中*

为什么我们要在LSTM的输出门上使用tanh函数?

以下引用自Stack Overflow上问题 What is the intuition of using tanh in LSTM 中的最佳答案:
https://stackoverflow.com/questions/40761185/what-is-the-intuition-of-using-tanh-in-lstm

在LSTM的输入和输出门中使用tanh函数有以下几个原因:

  1. 为了防止梯度消失问题,我们需要一个二次导数在大范围内不为0的函数,而tanh函数可以满足这一点
  2. 为了便于凸优化,我们需要一个单调函数
  3. tanh函数一般收敛的更快
  4. tanh函数的求导占用系统的资源更少

将经过tanh函数处理后的单元状态与sigmoid函数处理后的,整合后的向量点对点的乘起来就可以得到LSTM在 𝑡 时刻的输出了!

GRU

GRU(Gate Recurrent Unit)是循环神经网络(RNN)的一种,可以解决RNN中不能长期记忆和反向传播中的梯度等问题,与LSTM的作用类似,不过比LSTM简单,容易进行训练。

GRU 是对 LSTM 的简化,更轻量、计算更快,但性能通常相当。

"先用 reset 门控制旧隐状态,再算候选状态,最后用 update 门在旧状态和候选状态之间做加权平均。"

2.1 GRU的输入输出结构

GRU的输入输出结构与普通的RNN是一样的。

有一个当前的输入 𝑥𝑡 ,和上一个节点传递下来的隐状态(hidden state) ℎ𝑡−1 ,这个隐状态包含了之前节点的相关信息。

结合 𝑥𝑡 和 ℎ𝑡−1,GRU会得到当前隐藏节点的输出 𝑦𝑡 和传递给下一个节点的隐状态 ℎ𝑡 。

图2-1 GRU的输入输出结构

那么,GRU到底有什么特别之处呢?下面来对它的内部结构进行分析!


2.2 GRU的内部结构

首先,我们先通过上一个传输下来的状态 ℎ𝑡−1 和当前节点的输入 𝑥𝑡 来获取两个门控状态。如下图2-2所示,其中 𝑟 控制重置的门控(reset gate), 𝑧 为控制更新的门控(update gate)。

Tips: 𝜎 为_sigmoid_函数,通过这个函数可以将数据变换为0-1范围内的数值,从而来充当门控信号。

图2-2 r,z门控

与LSTM分明的层次结构不同,下面将对GRU进行一气呵成的介绍~~~ 请大家屏住呼吸,不要眨眼。

得到门控信号之后,首先使用重置门控来得到**"重置"之后的数据 ℎ𝑡−1′=ℎ𝑡−1⊙𝑟 ,再将 ℎ𝑡−1′ 与输入 𝑥𝑡 进行拼接,再通过一个tanh激活函数来将数据放缩到-1~1**的范围内。即得到如下图2-3所示的 ℎ′ 。

图2-3 包含当前输入数据的h&amp;amp;amp;amp;amp;#39;

这里的 ℎ′ 主要是包含了当前输入的 𝑥𝑡 数据。有针对性地对 ℎ′ 添加到当前的隐藏状态,相当于"记忆了当前时刻的状态"。类似于LSTM的选择记忆阶段(参照我的上一篇文章)。

图2-4 GRU的内部结构

图2-4中的 ⊙ 是Hadamard Product,也就是操作矩阵中对应的元素相乘,因此要求两个相乘矩阵是同型的。 ⊕ 则代表进行矩阵加法操作。


最后介绍GRU最关键的一个步骤,我们可以称之为**"更新记忆"**阶段。

在这个阶段,我们同时进行了遗忘了记忆两个步骤。我们使用了先前得到的更新门控 𝑧 (update gate)。

更新表达式: ℎ𝑡=(1−𝑧)⊙ℎ𝑡−1+𝑧⊙ℎ′

首先再次强调一下,门控信号(这里的 𝑧 )的范围为0~1。门控信号越接近1,代表"记忆"下来的数据越多;而越接近0则代表"遗忘"的越多。

有读者发现在pytorch里面的GRU[链接]写法相比原版对 ℎ𝑡−1 多了一个映射,相当于一个GRU变体,猜测是多加多这个映射能让整体实验效果提升较大。如果有了解的同学欢迎评论指出。

GRU很聪明的一点就在于,我们使用了同一个门控 𝑧 就同时可以进行遗忘和选择记忆(LSTM则要使用多个门控)。

  • (1−𝑧)⊙ℎ𝑡−1 :表示对原本隐藏状态的选择性"遗忘"。这里的 1−𝑧 可以想象成遗忘门(forget gate),忘记 ℎ𝑡−1 维度中一些不重要的信息。
  • 𝑧⊙ℎ′ : 表示对包含当前节点信息的 ℎ′ 进行选择性"记忆"。与上面类似,这里的 (1−𝑧) 同理会忘记 ℎ′ 维度中的一些不重要的信息。或者,这里我们更应当看做是对 ℎ′ 维度中的某些信息进行选择。
  • ℎ𝑡=(1−𝑧)⊙ℎ𝑡−1+𝑧⊙ℎ′ :结合上述,这一步的操作就是忘记传递下来的 ℎ𝑡−1 中的某些维度信息,并加入当前节点输入的某些维度信息。

可以看到,这里的遗忘 𝑧 和选择 (1−𝑧) 是联动的。也就是说,对于传递进来的维度信息,我们会进行选择性遗忘,则遗忘了多少权重 (𝑧 ),我们就会使用包含当前输入的 ℎ′ 中所对应的权重进行弥补 (1−𝑧) 。以保持一种"恒定"状态。

相关推荐
我闻 如是6 小时前
OSError: [WinError 182] 操作系统无法运行 %1。
人工智能·深度学习
【建模先锋】7 小时前
精品数据分享 | 锂电池数据集(二)Nature子刊论文公开锂离子电池数据
深度学习·锂电池剩余寿命预测·锂电池数据集·剩余寿命预测模型
王哈哈^_^7 小时前
【完整源码+数据集】中药材数据集,yolov8中药分类检测数据集 9709 张,中药材分类识别数据集,中药材识别系统实战教程
人工智能·深度学习·算法·yolo·目标检测·计算机视觉·毕业设计
老鱼说AI8 小时前
PyTorch 深度强化学习实战:从零手写 PPO 算法训练你的月球着陆器智能体
人工智能·pytorch·深度学习·机器学习·计算机视觉·分类·回归
brave and determined8 小时前
可编程逻辑器件学习(day26):低主频FPGA为何能碾压高主频CPU?
人工智能·嵌入式硬件·深度学习·学习·fpga开发·云计算·fpga
光泽雨8 小时前
VisionMaster条码识别窗口大小解析
人工智能·深度学习·计算机视觉
西猫雷婶8 小时前
CNN全连接层
人工智能·pytorch·python·深度学习·神经网络·机器学习·cnn
池央10 小时前
化繁为简,点石成金:实战CANN TBE构建Transformer高性能融合注意力算子
人工智能·深度学习·transformer
风止何安啊10 小时前
揭秘 JS 继承的 “戏精家族” :原型、原型链与 new
前端·javascript·深度学习