![](https://img-blog.csdnimg.cn/375f03266bc549009ce74cc8177b0a4f.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
深度学习
文章平均质量分 63
个人学习深度学习的一些笔记,QA和一些思考
qq_46381729
这个作者很懒,什么都没留下…
展开
-
动手学PyTorch(李沐)21 ---- 数据增广
数据增强:在已有的数据集上,对数据进行变换,使得具有更大的多样性。定义辅助函数,便于读取图像和应用图像增广。随机改变 亮度、对比度、饱和度、色调。只使用简单的随机左右翻转。结合多种图像增广的方法。使用图像增广进行训练。原创 2023-09-25 18:35:20 · 330 阅读 · 0 评论 -
动手学PyTorch(李沐)20 ----ResNet
每一个层都包含了前一个模型作为子模型,以致于不会使得模型学偏,确保模型一直向好的方向发展。 思路是通过加层,不会影响到模型变复杂。做 f(x)=x+g(x) 加法,使得 如果新加的层没有学习到信息的时候,之前学习到的也能够传递到下一层,如果新加的层学到了新的信息,那么就可以叠加之前学到的信息。 意思就是说会另外加一个 1 * 1 的卷积变换通道,再把信息加回去。**ResNet512是经常用来刷分的模型,ResNet34通常是用的比较多的。**原创 2023-09-25 18:18:49 · 86 阅读 · 0 评论 -
动手学PyTorch(李沐)19 ----批量归一化
当神经网络特别深的时候,正向传播时从下往上传,逆向传播时从上往下传。逆向传播时,上面的梯度较大,越往下梯度就越容易变小。上面梯度较大,每次更新的时候上面就会不断更新,下面梯度较小,每次更新的时候权重更新就较小,这就导致上面比下边更容易收敛。越靠近数据的层,更容易去抽取到底层、边缘、局部、纹理特征,,当底层的权重改变的时候,上层的东西又要重新开始训练。 这就导致训练的时候,顶层需要不断地去拟合底层变化引起的问题。批量归一化解决的就是去避免底层变化导致顶层不断去拟合的问题。μB1∣B∣。原创 2023-09-25 17:06:20 · 223 阅读 · 0 评论 -
动手学PyTorch(李沐)18 ----GoogLeNet
。原创 2023-09-25 16:57:58 · 46 阅读 · 0 评论 -
动手学PyTorch(李沐)17 ---- NiN
NIN的设计思路就是不要全连接层,节省了大量的参数空间和参数优化时间,用1 * 1的卷积层代替全连接层,1 * 1的卷积层相当于固定参数的全连接层。 全连接层尤其占用参数空间,全连接层最重要的问题是会带来过拟合。NIN块,卷积层后跟两个 1*1 的卷积层。注意:前面部分要向下取整。原创 2023-09-25 16:42:35 · 104 阅读 · 0 评论 -
动手学PyTorch(李沐)16 ---- 使用块的网络VGG
VGG的设计思路就是比AlexNet更深更大。原创 2023-09-25 16:38:52 · 45 阅读 · 0 评论 -
动手学PyTorch(李沐)15 ----AlexNet
AlexNet相当于更大更深的LeNet。原创 2023-09-25 16:34:29 · 55 阅读 · 0 评论 -
动手学PyTorch(李沐)14 ----LeNet
LeNet网络结构如上,两个卷积层,两个池化层,再加连个全连接层构成了LeNet。LeNet-由两部分组成,卷积编码器和全连接层密集块。LeNet在FashionMNIST数据集的表现。为使用GPU,训练函数需要改动。原创 2023-09-18 19:44:44 · 137 阅读 · 0 评论 -
动手学PyTorch(李沐)13 ----池化层
设定一个任意大小的矩形池化窗口,并指定填充和步幅的。深度学习框架中的步幅与池化窗口大小相同。池化层在每个输入通道上单独运算。无通道、步幅池化层的实现。验证二维最大池化层的输出。实现池化层的正向传播。原创 2023-09-18 12:50:12 · 87 阅读 · 0 评论 -
动手学PyTorch(李沐)12 ---- 卷积层多通道
多输入通道:将多个识别出来的模式放到下一层进行组合输入,得到一个组合的模式识别。 多输出通道:每一个输出通道在识别不同的模式,即特征识别。计算多个通道的输出的互相关函数。原创 2023-09-17 21:17:57 · 114 阅读 · 0 评论 -
动手学PyTorch(李沐)11 ---- 卷积层
卷积层的一个简单应用,检测图像中不同颜色的边缘。1代表白变黑,-1代表黑变白。卷积核k只能检测垂直边缘。设置高度和宽度的步幅为2。在所有侧边填充1各像素。所学卷积核的权重张量。填充不同的高度和宽度。原创 2023-09-17 21:14:21 · 177 阅读 · 1 评论 -
深度学习的一些QA
集成学习是在竞赛刷榜时的常用方法,但它有很多模型,在预测的时候代价相对较大,但看训练精度的话,确是一个很好的选择。数值差值较大的数据如果直接训练的话容易导致梯度爆炸,对此可以取log对数,或者去均值为0,方差为1的处理。对于不规则文本特征,不能用get_dummies方法标注,通常用backforward等方法。原创 2023-08-25 10:59:08 · 42 阅读 · 1 评论 -
动手学PyTorch(李沐)10 ---- GPU使用
数据在GPU上,操作运算就要在GPU上完成,要保证手动copy到GPU上,如果有多个GPU的话,也要使得数据和模型在同一个GPU上。通常在cpu上把权重初始化好,然后调用 .to 方法把层(所有参数)移动到gpu上,y也在当前gpu上。计算是在同一gpu上计算,从gpu移动数据到cpu是一件很慢的事情。允许我们在请求的GPU不存在的情况下用CPU运行代码。查询张量所在的设备,在gpu上创建tensor。计算t+y,需要决定在哪里执行操作。在第二个gpu创建张量。原创 2023-08-25 10:14:05 · 185 阅读 · 1 评论 -
torch.nn.init初始化参数
【代码】torch.nn.init初始化参数。原创 2023-08-11 18:19:07 · 86 阅读 · 1 评论 -
动手学PyTorch(李沐)9 ---- 房价预测
将所有的缺失值替换为相应特征的平均值,通过将特征重新缩放到均值为零和方差为1来标准化数据。从pandas格式中提取numpy格式,并将其转换为张量表示。解决办事是用价格预测是对数来衡量误差。返回训练和验证误差的均值。原创 2023-08-10 18:58:29 · 157 阅读 · 1 评论 -
动手学PyTorch(李沐)8 ---- 数值稳定
梯度的反向传播是从顶层开始,一开始是正常的,梯度是乘法,越往深层,梯度越来越小,底部拿到是数就很小,如果底部的层很小,那么不管怎么做学习率,效果提升都是有限的。顶部的层训练很好,但底部的层没效果,本质上与浅层神经网络没有区别。梯度裁剪:如果梯度超出某个阈值,就将其设定为当前阈值,将梯度强行限制在某个范围内。梯度归一化:如把梯度变为均值为0,方差为1的数。就是不管梯度多大,都拉回来变小。 当神经网络很深的实现,数值非常容易不稳定。原创 2023-08-10 18:49:17 · 55 阅读 · 1 评论 -
动手学PyTorch(李沐)7 ---- 丢弃法
丢弃概率通常为0.5,0.9,0.3 通常,我们在测试时不⽤暂退法。给定⼀个训练好的模型和⼀个新的样本,我们不会丢弃任何节点,因此不需要标准化。然⽽也有⼀些例外:⼀些研究⼈员在测试时使⽤暂退法,⽤于估计神经⽹络预测的“不确定性”:如果通过许多不同的暂退法遮盖后得到的预测结果都是⼀致的,那么我们可以说⽹络发挥更稳定。 dropout一般作用在全连接隐藏层的输出上,作用后的结果作为下一层的输入。原创 2023-08-03 15:30:02 · 151 阅读 · 0 评论 -
动手学PyTorch(李沐)6 ---- 权重衰退
拟合一组数据可以有很多简单的复杂的模型,如果权重范围选的很大,就可能学到一些很复杂的曲线,限制权重范围,就是不让学习到很复杂的模型。L1范数就是torch.abs(w)。实践中权重衰退的λ一般设置为0.1,0.01,0.001,如果模型太过复杂,权重衰退不会带来很好的效果。噪音越大,w就越大。原创 2023-08-03 15:37:24 · 137 阅读 · 0 评论 -
动手学PyTorch(李沐)5 ---- 模型选择和拟合
模型容量低的时候,模型过于简单,无法拟合较复杂数据。随着模型容量增高,训练误差在下降,但是在过了最优点之后,泛化误差会上升,因为模型过于关注细节,导致被无关紧要的一些信息所困扰。 通过k折的平均误差来评判超参数的好坏,选择最好的计算结果对应的那组参数作为模型参数。 k越大,训练使用到的数据越多,但是训练代价太大。原创 2023-07-19 22:53:52 · 147 阅读 · 0 评论 -
动手学PyTorch(李沐)4 ---- 多层感知机(附代码实现)
输入依然是长为n的向量隐藏层W1依然是m*n的矩阵,对于m个神经元,和长为n的输入向量,每个神经元都要对输入进行计算输出层W2是m*k的矩阵,输出层接受长为n的向量的输入,输入长为k的向量最后需要softmax对输出向量进行处理神经网络中的一层实际指的是带权重的一层,出去输入层,剩下的就是层数。每一层包含了该层的权重 W,b 和激活函数,以及当前层的计算方法SVM替代了感知机,多层感知机解决了XOR的问题,但多层感知机没有流行是因为要解决隐藏层数量、大小、收敛等问题,工作量太大。原创 2023-07-19 22:50:06 · 534 阅读 · 0 评论 -
动手学PyTorch(李沐)3 ---- 感知机
σ函数有很多种选择,条件函数可以根据需要调整 二分类问题:-1 or 1 二分类: Vs.回归输出实数 Vs.SoftMax回归输出概率()多分类 *对于二分类问题,样本yi乘以(w与xi的内积加上b)的结果,如果是大于0,则证明预测和实际相符,如果小于0,则表示分类分错了,需要调整更新参数。w = w + yixi , b = b + yi 对于梯度来说,使用了max函数,如果 y 大于 0,则分类正确,不用调整参原创 2023-07-19 22:40:22 · 45 阅读 · 0 评论 -
动手学PyTorch(李沐)2 ---- SoftMax(附实现代码)
将 softmax 作用在 o 上,o 是类别的独热编码,得到 y_hat ,是长为 n 的向量,每个元素非负且和为 1 ,具体指 y_hat 的第 i 个元素等于 o 里面的第 i 个元素做指数,再除以所有的 Ok做指数的和,这样好处是使得 y 成为了一个概率,将真实标号的 y 也做成了一个概率。这就将输入转换为 0 到 1 的值,解释为概率,如果输入很小或为负,softmax将其变为小概率,输入很大就会变为大概率。 关心的不是他们之间实际的值,关心的是对正确类型的置信度特别大。原创 2023-07-13 17:31:53 · 2012 阅读 · 1 评论 -
动手学PyTorch(李沐)1 ---- 线性回归(附实现代码)
η为学习率(步长,是一个超参,需要人为指定的值),乘以变化梯度,表示延梯度方向将增加的损失函数值,η表示沿梯度方向每次都多远。。原创 2023-07-09 16:28:40 · 1265 阅读 · 1 评论 -
安装d2l库时报错:ERROR:Could not build wheels for pandas, which is required to
因为pandas和d2l版本不兼容,d2l包里的pandas是1.2.4版本。原创 2023-07-06 22:10:12 · 510 阅读 · 4 评论