动手学深度学习
文章平均质量分 65
视频课程笔记
echo_gou
这个作者很懒,什么都没留下…
展开
-
【笔记】动手学深度学习 - 锚框
42 锚框【动手学深度学习v2】_哔哩哔哩_bilibili目录锚框交并比IoU:赋予锚框编号非极大抑制(NMS)输出:总结:锚框所谓锚框,就是目标检测算法中,以锚点为中心,由算法预定义的多个不同长宽比的先验框。假设输入图像的高度为 h,宽度为 w。 我们以图像的每个像素为中心生成不同形状的锚框:比例为 s∈(0,1](即锚框占整张图片的大小),宽高比(宽高比)为 r>0。 那么锚框的宽度和高度分别是 当中心位置给定时,已知宽和高的锚框是确定的。要生成多个不原创 2021-11-24 16:10:52 · 4678 阅读 · 4 评论 -
【笔记】动手学深度学习 - 物体检测和数据集
边缘框:边缘框可以用四个数字定义:左上(x,y)和右下的(x,y)或者左上的(x,y)和宽高数据集:我们图片分类数据集中,把不同的图片放入不同的文件夹来表示不同的类别。而检测的时候就不能这样划分,因为一张图片中可能有多个物体。所以每行表示一个物体(假设使用txt存放): 每行包含图片文件名,物体类别,边缘框。常用的目标检测数据集COCO:cocodataset.org(80物体,330k图片,1.5M物体)边缘框实现...原创 2021-11-22 20:39:08 · 2119 阅读 · 0 评论 -
【笔记】动手学深度学习 - 微调(迁移学习)
视频网址:37 微调【动手学深度学习v2】_哔哩哔哩_bilibili原创 2021-11-17 20:38:41 · 516 阅读 · 0 评论 -
【笔记】动手学深度学习 - Resnet
resnet就是在前面几个卷积网络的基础上的延续,基本思想还是卷积堆叠。之前学弟BN(批量归一化)可以解决网络层数太深而出现的梯度消失问题,但是如果网络层数太多,这个方法也是不太管用的。所以就提出了resnet。resnet的主要特点就是残差块,残差块的目的就是为了保存之前当前层未训练之前的参数的特征,将这些参数和训练之后的数据一同传入到之后的层当中。残差块具体解释如下:黑色图中F(x)可以理解为进行中间的一系列卷积、relu、BN等操作之后的输出,我们最后把F(x)和x相加作为本层残差原创 2021-11-08 10:33:44 · 3085 阅读 · 0 评论 -
【笔记】动手学深度学习 - GoogleNet
Googlenet和经典的卷积神经网络之间的最大区别就是下面这个inception块:原理是将一个输入分别输入到这四个路径中,然后得出输出为4个路径输出的叠加(即将通道叠加在一起)。输出和输入的图片的高宽等宽,改变的只是通道数。比如:图片中黄色字体为当前层输出的通道数,所以最后的concatanation通道数为64+128+32+32=256。这个黄色字体的具体数字的得出是通过多次尝试所得到的的结果(炼丹),并不是什么推导而出的。不同的inception的参数也不大相同,分..原创 2021-11-03 15:29:07 · 669 阅读 · 0 评论 -
【笔记】动手学深度学习 - 卷积层
主要是应用于图片识别,其次还有自然语言处理等。卷积神经网络不再是对每个输入像素进行处理,而是把图片分成一小块区域来进行处理,这样就加强了图片信息的连续性。加深了神经网络对于图片的理解和识别。计算机视觉的网络结构具有两个性质: 平移不变性(translation invariance):不管检测对象出现在图像中的哪个位置,神经网络的前面几层应该对相同的图像区域具有相似的反应,即为“平移不变性”。 局部性(locality):神经网络的前面几层应该只探索输入图像中的局部区域,而不...原创 2021-10-10 16:02:49 · 333 阅读 · 0 评论 -
【笔记】动手学深度学习 - pytorch神经网络基础
介绍为了实现复杂的网络,我们引入了神经网络块的概念。块可以描述单个层、由多个层组成的组件或整个模型本身。从编程的角度来看,块由类(class)表示。它的任何子类都必须定义一个将其输入转换为输出的正向传播函数(forward),并且必须存储任何必需的参数。注意,有些块不需要任何参数。最后,为了计算梯度,块必须具有反向传播函数。幸运的是,在定义我们自己的块时,由于自动微分(在 2.5节 中引入)提供了一些后端实现,我们只需要考虑正向传播函数和必需的参数。首先,我们回顾一下多层感知机的原创 2021-09-16 20:54:24 · 657 阅读 · 0 评论 -
【笔记】动手学深度学习 - 数值稳定性 + 模型初始化和激活函数
数值稳定性其中t为层。为t-1层的输出如果层数比较多,就有可能出现梯度爆炸或者梯度消失。生物神经元似乎是用 Sigmoid(S 型)激活函数活动的,因此研究人员在很长一段时间内坚持 Sigmoid 函数。但事实证明,Relu 激活函数通常在 ANN 工作得更好。这是生物研究误导的例子之一。当神经网络有很多层,每个隐藏层都使用Sigmoid函数作为激励函数时,很容易引起梯度消失的问题因为sigmoid有一个缺点:当x较大或较小时,导数接近0;并且Sigmoid函数导...原创 2021-08-31 15:30:16 · 302 阅读 · 0 评论 -
【笔记】动手学深度学习- dropout 丢弃法
介绍在这里丢弃法特指 倒置丢弃法(inverted dropout)。原理:不是在输入的时候加入噪音,而是在层与层之间加入噪音,类似于正则。图中x为上一层的输出,x'为加入了噪音的x,要求加入噪音后期望值不变。所以我们使用这个:。可以发现加入噪音后期望值为Xi,没变。使用丢弃法通常丢弃法使用在全连接层上。两个图的左侧是没有使用丢弃法,右侧使用了丢弃法。可以发现丢弃法按照一定的概率随机丢弃了隐藏层中的一部分。具体操作就是在利用激活函数得出h后再对h进行“丢弃”操作。.原创 2021-08-30 22:00:37 · 869 阅读 · 0 评论 -
【笔记】动手学深度学习-权重衰退
权重衰退相关理解权重衰减等价于范数正则化(regularization)下图是通过看吴恩达老师机器学习做的笔记:总的来说正则化就是为了避免过拟合而在loss函数后面加上一项正则项作为惩罚项从而降低过拟合下面三点来自于这篇文章,这篇文章讲的很通透作用: 权重衰减(L2正则化)可以避免模型过拟合问题。思考: L2正则化项有让w变小的效果,但是为什么w变小可以防止过拟合呢?原理: (1)从模型的复杂度上解释:更小的权值w,从某种意义上说,表示网络的复杂度更低,对数据的拟合更好(这个法则也叫原创 2021-08-17 15:45:25 · 1868 阅读 · 5 评论 -
【笔记】动手学深度学习-模型选择,拟合
模型选择验证数据集:用来评估模型好坏的数据集。例如:拿出50%的训练数据。验证数据集没有参加训练,所以可以在一定程度上参数选择好坏。不要跟训练数据混在一起(常犯错误)。测试数据集:只用一次的数据集,不能用来调参。例如:未来的考试而我们在代码中写的test_data一般指的是验证数据集,测试数据集应该是新找的。但是通常情况下我们是没有那么多数据来验证,所以提出了k-折交叉验证: 将数据分为k块Fori=1....K使...原创 2021-08-17 10:23:50 · 1813 阅读 · 2 评论 -
【笔记】动手学深度学习-多层感知机
基础知识单层的感知机只是一个二分类模型,它的求解等价于使用批量大小为1的梯度下降算法,它不能拟合类似于xor(异或模型),所以后来才引入了多层感知机。多层感知机使用隐藏层和激活函数来得到非线性模型常用激活函数是Sigmoid,Tanh,ReLU一个单隐藏层的例子:各种激活函数就是一个分类函数,是为了解决图中手绘的那个图片太“硬”的问题,即x=0左右的求导问题。relu函数相比于以上两个函数来说计算更快,所以更常用代码实现1导入包...原创 2021-08-09 13:59:42 · 780 阅读 · 0 评论 -
【笔记】动手学深度学习- softmax回归(逻辑回归)
图片分类数据集我们使用Fashion-Mnist数据集:不同于MNIST手写数据集,Fashion-MNIST数据集包含了10个类别的图像,分别是:t-shirt(T恤),trouser(牛仔裤),pullover(套衫),dress(裙子),coat(外套),sandal(凉鞋),shirt(衬衫),sneaker(运动鞋),bag(包),ankle boot(短靴)。1导入包%matplotlib inlineimport torchimport torchvision #对于计...原创 2021-08-04 17:23:45 · 5145 阅读 · 4 评论 -
【知识点】关于axis的理解(python)
本篇从两个例子argmax和sum两个函数来进行理解,是我的一个暂时性理解,不知道对不对,正确性有待验证。axis可以理解为从哪个维度来计算:比如axis=0就表示从第零个维度开始计算。(这里维度从0开始比较好理解)如b[i][j]这里有2个维度,axis=0表示在i方向上进行变化,即b[0][j] b[1][j]。输出的形状应该和b[0][j]和b[1][j]中的任何一个一样,即1*3的一个张量。二维:b=torch.tensor([[1,2,3],[3,5,4]])..原创 2021-08-04 11:25:07 · 1426 阅读 · 0 评论 -
【报错】[WinError 5] 拒绝访问 解决办法
一开始我按照网上大多数的解决办法,即将python.exe的权限全部勾选。但是行不通。后来我发现我的jupyter默认工作路径在一开始安装号anaconda的c盘里面,我就把默认工作路径改了在了F盘,然后就可以运行了。修改工作路径方法:首先激活环境,再更改即可最后记得把相应的包给复制过去参考...原创 2021-08-01 23:21:38 · 5267 阅读 · 5 评论 -
【笔记】动手学深度学习-线性回归
注:期望(mean)(或均值,亦简称期望):为试验中每次可能结果的概率乘以其结果的总和,是最基本的数学特征之一。它反映随机变量平均取值的大小。方差:为各个数据与平均数之差的平方的和的平均数梯度:数学上就是f(x,y)中,f对x的偏导和对y的偏导两者的和。图像上可以理解为指向f函数值最快增加方向。梯度讲解1从零开始实现1导入包%matplotlib inlineimport randomimport torchfrom d2l import torch as d2l2 首先需要..原创 2021-07-31 16:18:11 · 1845 阅读 · 0 评论 -
【笔记】动手学深度学习-张量
#按照字母排序import torch张量表示一个数值组成的数组,这个数组可能有很多维度torch.arange()torch.cat()torch.from_numpy(ndarray)从 numpy 创建 tensor。利用这个方法创建的 tensor 和原来的 ndarray 共享内存,当修改其中一个数据,另外一个也会被改动。代码示例:arr = np.array([[1, 2, 3], [4, 5, 6]])t = torch.from...原创 2021-07-31 16:14:46 · 214 阅读 · 0 评论