- 博客(28)
- 收藏
- 关注
原创 PyTorch深度学习实践——卷积神经网络(二)
例如,将第一层提取的边缘特征与第二层提取的纹理特征进行拼接,形成一个新的特征图,包含更多信息。:在处理图像时,可以从不同尺度提取特征,通过金字塔结构(如特征金字塔网络)将不同尺度的特征进行融合,以捕捉图像中的多层次信息。:首先,输入图像通过多个卷积层,提取出不同的特征。:在网络的不同层之间建立直接连接(如ResNet中的残差连接),可以保留低层次的细节信息,同时让高层次的信息更容易传播。:对不同特征进行加权,常用的方法包括注意力机制,通过学习不同特征的重要性来进行加权,从而实现信息的有效融合。
2024-10-28 19:46:10 221
原创 PyTorch深度学习实践——多分类问题
NLLLoss()和CrossEntropyLoss(),本质而言都是交叉熵损失函数,只是使用上略有不同。相对而言,CrossEntropyLoss()使用的更普遍。在之前的二分类问题中,我们使用的是sigmoid函数,而在多分类问题中我们使用的是softmax.在多分类问题中,需要注意两点:①输出的y > 0;oss,负对数似然损失函数。
2024-10-16 18:10:33 245
原创 PyTorch深度学习实践——加载数据集
如果只使用一个样本的话,我们在训练的过程中会保持很好的随机性,会帮助我们克服鞍点的问题,同时,使用一个样本我们训练出的模型会更加好,但这也同样导致我们优化的时间过长。PS:在DataLoader加载数据集时有两种情况,(1)在数据量小的情况下,比如一些结构化的数据表,我们会把所有的数据全部加载到内存中,然后getitem()方法会通过索引在内存中得到数据;(2)在数据量大的情况下,比如图像、语音等非结构化的数据,我们无法将全部的数据加载到内存中,我们会将数据放在一个文件中,然后将所有文件名组成一个列表。
2024-10-13 15:34:49 240
原创 深度学习基础之反向传播算法
在我们训练模型的过程中,我们是要对训练的权重即w,进行更新,我们是通过得到损失函数对w的导数,从而得到w的更新。通俗讲,反向传播算法通过把神经网络看成是一张图,我们可以在图上来传播梯度,最终根据链式法则求出梯度。反向传播,顾名思义,是从后向前传播的一种方法。因此计算完误差后,需要将这个误差向不断的向前一层传播。反向传播是为了解决偏导数计算量大的问题。(因为不同神经元的重要性不同,因此回传时需要考虑权重系数)。图中的η ηη代表学习率,w ′ 是更新后的权重。如图所示,是一个简单的全连接三层的神经网络,
2024-10-07 20:35:36 296
原创 PyTorch深度学习实践——处理多维特征的输入
我们模型的8个特征值都需要与其相应的权重相乘,并且加上相应的偏置。由此,我们可以通过矩阵的形式进行运算。下图所示是一个糖尿病预测的数据集,图中每一行代表一个样本(x1、.......x8表示8个特征,y表示输出),每一列表示一个特征。由图可见,我们的模型输入变成了八维的多特征值,所以我们之前的单特征值模型已经不再适用,因为我们需要对每个特征值都进行处理。在之前的学习中,我们处理的是单特征值的输入,这篇blog我们讨论一下多维特征输入的处理。PS:pytorch提供的Sigmoid函数是以向量的形式计算的。
2024-09-27 20:29:54 271
原创 PyTorch深度学习实践——逻辑斯蒂回归
在我们的线性模型y-pred = w*x+b中,我们得到的输出值y的结果是属于实数的,但在分类问题中,我们输出的是概率 ,而它的概率是[0,1]。在二分类中,如果我们得到的概率非常接近0.5,那我们就认为我们的学习器对当前数据样本的类别并不是有十足的把握。,也称为Logistic函数,是一种常用的数学函数。在分类问题中,我们并不是输出估计的y值是多少,而是根据输入值,输出的是输入值属于某一分类的概率。在二分类回归问题中,我们要比较的是两个分布之间的差异,所以这里我们使用的是二分类的交叉熵。
2024-09-25 21:02:59 160
原创 PyTorch深度学习实践——用PyTorch实现线性回归
在PyTorch中用mini-batch构建数据集时,x和y必须是矩阵。在我们使用numpy计算的时候,numpy有一种广播机制,所谓的广播机制,在我理解来是将要进行的计算进行扩充,使其进行的是矩阵运算。在之前的模型训练中,我们是人工的进行求导计算,而在PyTorch中,我们的主要任务是构造计算图,只要我们构造出计算图,PyTorch会自动的帮我们求出梯度值。所以,在得到loss的向量后,进行求和,得到标量,同时,对于loss是否求取均值,取决于我们自己的需求。接下来,我们设计模型,
2024-09-18 20:59:54 279
原创 PyTorch深度学习实践——反向传播
反向传播是为了解决偏导数计算量大的问题。如图所示,我们很难通过写出解析式得到计算结果。由此,我们考虑反向传播算法。通俗讲,反向传播算法通过把神经网络看成是一张图,我们可以在图上来传播梯度,最终根据链式法则求出梯度。下图所示就是反向传播算法中前馈与反馈的流程图,图二为线性模型的简单举例,当然,如果我们的神经网络有多层,那么x就是相当于前一层的z,所以我们要继续遵循我们的链式法则,向前计算。在我们训练模型的过程中,我们是要对训练的权重即w,进行更新,我们是通过得到损失函数对w的导数,从而得到w的更新。
2024-09-14 20:32:53 239
原创 PyTorch深度学习实践——梯度下降算法
接下来,我们讨论一下分治,如图一所示,在W1和W2分别取四个点,得到最小,然后我们会认为最优解应该在如图的范围内产生,但这种方法仅限于光滑的凹面,如图二所示的平面,我们有可能会错过最优解(同时,如果权重的数量上升数量级,我们也很难处理),所以分治方法的不足显而易见。当然,在梯度下降算法中我们不一定可以得到全局最优解,例如图二,但我们可以得到局部最优解(当然,这种也很少见),但是我们更多会遇到鞍点(梯度为0或者零向量)这种情况。一般来说,我们的训练是趋于收敛的,如果在收敛后发散了,考虑学习率取得过大。
2024-09-11 20:22:07 235
原创 PyTorch深度学习实践——线性模型
过拟合问题:在训练集上误差很小。有可能就是在训练的过程 把噪声也学进来了,这是我们所不想见到的。数据集:训练集(会分成两份,一部分用于训练,一部分用于模型的评估,即开发集)和测试集。泛化能力:在训练集上完成训练后,对于没有见过的图像也有很好的识别能力。4.穷举法(最优解:损失最小)
2024-09-11 17:37:59 216
原创 Python 第二次作业:使用python计算从1-500,求和
Python 第二次作业:使用python计算从1-500,求和1.一般方法运行结果:2.高斯求和运行结果:3.编写一个函数运行结果:
2022-09-04 18:09:36 394
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人