沐神
文章平均质量分 57
主要分享沐神课程内容的笔记,以作为后期复习
瑾怀轩
三人行必有我师,欢迎交朋友。
个人博客:chenkequan.cn
展开
-
【动手学】44 物体检测算法:R-CNN,SSD,YOLO
1、 R-CNN使用启发式搜索算法来选择锚框,如 selective search使用预训练模型来对每个锚框抽取特征训练一个SVM对类别分类 【深度学习之前常使用】训练一个线性回归模型来预测边缘框偏移[思考🤔]怎么样使得产生的不一样大小锚框形成 一个batch?兴趣区域(RoI)池化层给定一个锚框,均匀分割成n×m块,输出每块里最大值不管锚框多大,输出总为nm个值Fast RCNN使用CNN对图片抽取特征使用RoI池化层对每个锚框生成固定长度特征【思考🤔】这里原创 2022-04-26 10:59:07 · 689 阅读 · 0 评论 -
【动手学】43 树叶分类竞赛技术总结
1、比赛trick数据增强,测试阶段多次使用稍弱的增强然后取平均使用多个模型预测,最后结构加权平均训练算法和学习率清理数据,在训练数据中有大量噪音,需要做数据清理2、数据方面有重复图片,可以手动去除图片背景较多,而且树叶没有方向性随机旋转,更大的裁剪跨图片增强:Mixup :随机叠加两张图片CutMix:随机组合来自不同图片的块3、模型方面模型多为ResNet变种DenseNet,ResNeXt , ResNeSt,…EfficientNet优化算原创 2022-04-25 17:21:24 · 297 阅读 · 0 评论 -
图神经网络简介(一)
【原文地址】【视频讲解】【引言】神经网络已经适应于利用图的结构和属性。 我们探索构建图神经网络所需的组件 - 并激发它们背后的设计选择。【注】我们可以看到每一个节点是和下层某几个节点计算而来。顶部的节点由他的邻居的节点计算,越顶层,关系的邻居越多。这也是图神经网络如何利用图的结构化信息来处理信息的。本文是关于图神经网络的两篇 Distill 出版物之一。 查看了解图上的卷积以了解图像上的卷积如何自然地推广到图上的卷积。【有两篇关于图卷积,本篇比较基础】...原创 2022-01-28 21:49:39 · 5654 阅读 · 0 评论 -
【动手学】42_锚框QA
问题10:也就是说到底用C++还是 python用于三维视党,主要取決于产品的芯片性能,可以这么理解吗?答:如果性能没影响用python好一些,像锚框处理和性能有要求C++更好些,迁移性也好一些问题11:算法能不能仅通过视频(2D)来推测视频中物体的前后关系(3D答:transformer 时序那块会讲问题12:怎么算锚框框住了一个物体呢?阈值怎么确定?答:阈值是手定的问题13:这里一个锚框只能对应一个真实框吗?答:是的问题14:为什么要生成多个训练样本?直接从一张图上不同位原创 2022-01-06 21:33:37 · 2510 阅读 · 0 评论 -
【动手学】44_你只看一次(YOLO)
You Only Look Once 【论文】一、YOLO(你只看一次)【注】 痛点:SSD中锚框大量重叠,因此浪费了很多计算改进点:YOLO将图片均匀分成SxS个锚框;每个锚框预测B个边界框;后续版本(V2,V3V4..)有持续改进【注】:加入增强,能达到一个很好的效果【课程内容较为粗略,后续有机会写下详解~~】...原创 2022-01-03 18:50:35 · 1491 阅读 · 0 评论 -
【动手学】44_单发多框检测(SSD)
Single Shot MultiBox Detector 【论文】(Single Shot 应该翻译成 看一次)【注】 一阶段算法,和RCNN系列算法相比没有区域提议部分。一、生成锚框对每个像素,生成多个以它为中心的锚框 给定n个大小s,和m个高宽比,那么生成n+m-1个锚框,其大小和高宽比分别为【注】和rcnn系列比,生成锚框很简单二、SSD模型【注】底层的特征会较大,逐渐特征图变小。那么越底层去看小物体,越顶层去看大物题;生成锚框多(一百万多个),然后通过...原创 2022-01-03 16:25:14 · 2030 阅读 · 0 评论 -
【动手学】44_区域卷积神经网络(R-CNNs)
一、RCNN使用启发式搜索算法选择锚框。(selective Search 是早期选择提议框的一种方法) 使用预训练模型来对每个锚框提取特征 训练一个SVM对类别分类 训练一个线性回归模型来预测边缘框偏移(区域提议算法选出的锚框到真实框之间的偏移)区域提议算法生成锚框大小不同,如何让它们相同形成一个batch?兴趣区域池化层(Rol) 【注意 这块内容是Fast RCNN提出来的】 给定一个锚框,均匀分割成n×m块,输出每块里的最大值 不管锚框多大,总是输出nm个值 .原创 2022-01-03 15:56:29 · 860 阅读 · 0 评论 -
【动手学】43_树叶竞赛总结
一、技术分析 相比于课程介绍的代码,同学们主要做了下面这些加强 数据增强,在测试时多次使用稍弱的增强然后取平均 使用多个模型预测,最后结果加权平均(有使用10种模型的,也有使用单一模型的) 训练算法和学习率 清理数据 二、数据方面 有重复图片,可以手动去除 图片背景较多,而且树叶没有方向性,可以做更多增强 随机旋转,更大的剪裁 跨图片增强 Mixup:随机叠加两张图片 Cu原创 2022-01-02 14:42:30 · 97 阅读 · 0 评论 -
【动手学】42_锚框
当前目标检测按锚框分类有两类:有锚框算法,Yolo ,RCNN等 无锚框算法,YOLOX衡量锚框的重合程度---IOU(交并比)将图片看成像素集合,那每个框一是像素的集合,这样就可以使用雅克比指数进行衡量交并比。给锚框定标号:每个锚框是一个训练样本 将每个锚框,要么标注成背景,要么关联上一个真实边绿框 我们可能会生成大量的锚框,这个导致大量的负类样本通过选择某一锚框(行),则就负责该行和列(边缘框)的预测,直到整个图像所有像素全部被覆盖。两种生成方法:根据图片.原创 2021-12-30 18:06:31 · 1000 阅读 · 0 评论 -
【动手学】41、物体检测和数据集
1、目标检测和分类任务比分类任务稍微复杂可以检测多个目标 不仅对每个目标进行分类和定位 2、目标框的常用表示方式目标框的左上和右下点的坐标 框的左上坐标,框的高和宽 yolo中 框中心坐标➕框的高宽数据集每行表示一个物体(文件名,类别,边缘框) coco数据集(80类,33万张图片,150万目标框)它的地位等同于分类任务中ImageNet数据集总结:物体检测识别多个物体的类别和位置。 位置通常用边缘框标识。...原创 2021-12-24 14:56:34 · 946 阅读 · 0 评论 -
【动手学】28 批量归一化_代码
批量归一化从零开始实现import torchfrom torch import nnfrom d2l import torch as d2ldef batch_norm(X,gamma,beta,moving_mean,moving_var ,eps,momentum): #moving_mean,moving_var,近似全局的均值和方差,eps避免出零的变量,momentum更新mean和var的参数 if not torch.is_grad_enabled():原创 2021-12-22 14:42:11 · 454 阅读 · 0 评论 -
【动手学】28 批量归一化QA
问题1:请问,老师还像之前在讲 xavier的时候,也讲过类似的 normalization的东西,这个和这里的BN有什么区别,麻烦讲一下,谢谢答:本质上没什么区别,目的是为了比较稳定,使用Xavier是说在模型初始化时选择值使得模型相对稳定,归一化是在模型训练过程中使得模型相对比较稳定。 他的核心是使得数值比较稳定问题2:批量归一化是不是和权重衰减的作用类似?答:不会有太多影响问题4: batch norm能用在mlp中吗?答:可以的,对深度网络效果可能好一些问题6: assert原创 2021-12-21 09:15:20 · 136 阅读 · 0 评论 -
【动手学】29 残差网络_ResNet_代码
import torchfrom torch import nnfrom d2l import torch as d2lfrom torch.nn import functional as Fclass Residual(nn.Module): def __init__(self,input_channels,num_channels,use_1x1conv=False,strides = 1): super().__init__() self.conv1.原创 2021-12-21 09:14:11 · 993 阅读 · 0 评论 -
【动手学】29 残差网络ResNet_QA
问题15:为什么 lenet batch size大于1000收敛会有问题?会有什么样的问题?nan还是?答:不是收敛有问题,是收敛很慢问题16:f(x)=x+g(x),这样就能保证至少不会变坏吗?如果g(x)不是变好也不是什么都不干,而是变坏了呢?答:只有当g(x)变好时才能拿到loss获得梯度进行更新。当模型发现g(x)很难训练或者训练没有什么变化,他就拿不到梯度,resnet加深时通常不会是模型变坏问题17:cos学习率会比step或者固定学习率好吗?答:cos学习率也挺好的,在前原创 2021-12-21 09:11:19 · 179 阅读 · 0 评论 -
【动手学】30 分类竞赛QA
问题1:如果要提高泛化性,就有可能增加数据?调参的意思是不是最大了?答:增加数据:做简单的增加泛化性;要注意数据的质量;当有很多数据时,就不用了过度调参。问题2:还有个问题,我之前用的 alexnet先做的实验,我发现 resnet'18比alexnetl的模型文件要小很多,可是之前您的课里面有一张图,好像是 resnet的运算量要比 alexnet>大,怎么解释这个问题?答:alexnetl大概模型300多M,resnet18大概18M;AlexNet很大主要是因为全连接层;卷积层参数更原创 2021-12-21 09:10:23 · 272 阅读 · 0 评论 -
【动手学】32 深度学习硬件QA
问题3: VHDL VERILOG编程怎么学呢可以和c语言对比学习吗?答:现在fpa可以使用C开发问题4:硬件的性能是不是这样的:专用硬件>fpga>通用硬件?fpga的编译慢可以通过模拟器解決吗?fpgaー般是用于验证asic的设计?答:同样芯片面积和纳米工艺,是的。烧板子过程很慢。fpga应用华为路由,数据中心。问题5请问老师 pytorch有什么方法调用tpu么, colaba也有免费的tpu资源可以用,如果可以调用tpu的话会不会快一点答:colab是有的。使用tpu原创 2021-12-21 09:09:31 · 712 阅读 · 0 评论 -
【动手学】33 单机多卡并行QA
问题17:有个问题,比如我在4块GPU训练,后来我有2块更大显存的GPU,那我什么都不变,换成2块大显存的GPU训练,会有什么影响吗?答:做数据并行问题18:小批量分到多GPU计算后,模型结果怎么合到一诀?答:梯度加起来,模型只在一个地方被更新可题19:数据拆分并行以后,中间需要存储的数据量会增加吗?会降低性能吧?答:模型和梯度增加了,中间数据量是不会增加,中间GPU数据样本那少了,数据量应该会低,性能会低问题20:数据并行的时候,不同gpu也是拷贝了同一个模型吗?那是不是数据并行才原创 2021-12-21 08:52:29 · 104 阅读 · 0 评论 -
【动手学】34 多GPU训练实现_代码
%matplotlib inlineimport torchfrom torch import nnfrom torch.nn import functional as Ffrom d2l import torch as d2l简单网络 LeNETscale = 0.01W1 = torch.randn(size=(20,1,3,3))*scaleb1 = torch.zeros(20)W2 = torch.randn(size=(50,20,5,5))*scaleb2 = .原创 2021-12-21 08:51:29 · 632 阅读 · 0 评论 -
【动手学】 34 多GPU训练实现QA
问题1:最近 keras从分离,书籍会不会需要重新整理呀?答:keras可以看为python的库。问题3:请问 resets中的卷积层能否全部替換成mlp来实现一个很深的的深层mlp网络?答:1*1的卷积层=共享参数的全连接层问题4:既然 XX norm是一种正则,那么原则上它应该能像 dropout那样加强模型的泛化能力,那就应该能提高模型的测试精度。那为什么说 batch norm只能加快训练而对精度没影响呢?答:不知道问题6:李老师您好,我想做建筑图纸的处理,请问有没有相关的深原创 2021-12-21 08:46:21 · 339 阅读 · 0 评论 -
【动手学】35 分布式训练QA
问题27: pytorch怎么设置不同gpu不同的 batch size呢?比如刚才提到的两种不同的gpu放在一起训练的情况答:device load参数设置,在DataParallel中有个参数设置。问题28:分布式的目的也是和 data parallel--样提升计算速度吗?为什么不能只用 data parallel就解決这个问题呢,是因为分布式多了一些通信的技术吗?答:我们这里讨论的是data parallel怎么应用在单机多卡和分布式上。本质上是一个东西问题29:每个参数服务器求完梯原创 2021-12-21 08:45:31 · 93 阅读 · 0 评论 -
【动手学】36 图片增广_代码
%matplotlib inlineimport torchimport torchvisionfrom torch import nnfrom d2l import torch as d2ld2l.set_figsize()img = d2l.Image.open('./data/tmp2E5F.png')d2l.plt.imshow(img) <matplotlib.image.AxesImage at 0x7fd01038c3d0>def apply..原创 2021-12-21 08:33:08 · 832 阅读 · 0 评论 -
【动手学】36 数据增广QA
问题1:理论上,是不是如果原始样本如果足够多,就用不着做增广?答:一种理想情况是,训练样本比较多覆盖到了测试样本,这样是OK的。但现实往往不是,举个栗子,智能音响,原始样本对实际的覆盖往往是不够的。问题2:老师, num worker的值是不是根据机器GPU性能而设定?答:一般是开一个Epoch,多尝试直到性能提升不明显甚至下降就可以不增加num_worker。一般4就不错了题3:老师,金融风控领域经常碰到的数据都是极度偏斜数据(欺诈样本/正样本比例只占1%),是否可以针对正样本试试类似今天原创 2021-12-20 19:46:02 · 313 阅读 · 0 评论 -
【动手学】37 微调_代码
%matplotlib inlineimport osimport torchimport torchvisionfrom torch import nnfrom d2l import torch as d2l#@save d2l.DATA_HUB['hotdog'] = (d2l.DATA_URL + 'hotdog.zip', 'fba480ffa8aa7e0febbb511d181409f899b9baa...原创 2021-12-20 19:29:43 · 585 阅读 · 0 评论 -
【动手学】37 微调_QA
问题21:微调这部分是意昧着,神经网络进行不同的目标检测,前面层的网络进行特征提取是通用的么?答:对的,越底层的层,会越通用,因为抽取底层纹理信息,让神经网络去理解数据形成的模版,我们认为是通用的问题22:老师,数据不平衡问题对特征提取器影响大还是分类器影响大?答:数据不平衡,对特征提取影响不是很大,对越上面的层会影响比较大,数据不平衡通常是标号不平衡,标号不平衡主要是对上次的影响。问题23:假设有A,B两个数据集,都很大,A是 Imagenet,B是医学图片。如果我要识别癌症,那是用 re原创 2021-12-20 18:51:31 · 442 阅读 · 0 评论 -
【动手学】37 微调
微调也叫做迁移学习。标注数据是一件很贵的事情。神经网络一般分为两块,特征提取和Softmax回归。特征抽取目的是将原始像素变成容易进行线性分割的特征 线性分类器则是用来做分类器微调:在ImageNet上的神经网络训练的模型,在特征提取的层里,参数已经可以较好的进行特征提取了。那么对于我的数据集,就可以采用特征提取部分的参数,使用自己的分类器。从而提高自己的模型训练速度和精度...原创 2021-12-11 12:19:36 · 525 阅读 · 0 评论