深度学习
文章平均质量分 59
Allen Chou
这个作者很懒,什么都没留下…
展开
-
非极大值抑制NMS代码实现(基于Python)
前言给出一张图片和上面许多物体检测的候选框(即每个框可能都代表某种物体),但是这些框很可能有互相重叠的部分,我们要做的就是只保留最优的框。假设有N个框,每个框被分类器计算得到的分数为Si, 1<=i<=N。(1)建造一个存放待处理候选框的集合H,初始化为包含全部N个框;建造一个存放最优框的集合M,初始化为空集。(2)将所有集合 H 中的框进行排序,选出分数最高的框 m,从集合 H 移到集合 M;(3)遍历集合 H 中的框,分别与框m计算交并比(Interection-over-uni原创 2021-10-04 16:50:57 · 767 阅读 · 0 评论 -
python中使用matplotlib画神经网络损失函数图像
1.代码from matplotlib import pyplot as pltimport numpy as npw = np.linspace(-1.15,1.15,10000)Loss = (w**1 - 1)**2plt.plot(w, Loss, label = "2 layers NN")plt.xlabel("w")plt.ylabel("Loss")plt.legend(loc="best")plt.text(-0.5,3,r"$Loss=(w^1 - 1)^2$",f原创 2021-05-21 10:14:02 · 5257 阅读 · 0 评论 -
【深度学习】:目标检测SSD - Single Shot MultiBox Detector算法详解
开篇简短概括SSD的特点:•One-Stage•均匀的密集抽样•Priorboxes/Defaultboxes(Anchorboxes)•不同尺度抽样•不同scale尺度的特征图抽样•对于小目标检测效果不错•预测速度快•训练困难(正负样本极度不均衡)下图为一些网络结构的效率对比图,坦率来说,map达到75%到80%就可以了SSD 算法是一种直接 predict bounding box location by regression 和 predict object c原创 2021-02-06 23:49:50 · 687 阅读 · 0 评论 -
pytorch深度学习中每个epoch运行时间的统计代码
开头部分引入time模块,import time然后在每个epoch循环中开始处加入:since = time.time()结尾处加入以下代码:time_elapsed = time.time() - sinceprint('Training complete in {:.0f}m {:.0f}s'.format( time_elapsed // 60, time_elapsed % 60))...原创 2021-01-01 20:26:44 · 9176 阅读 · 0 评论 -
【深度学习】:R-CNN论文详解
paper链接:Rich feature hierarchies for accurate object detection and semantic segmentationR-CNN:Regions + CNN创新点 使用CNN(ConvNet)对 region proposals 计算 feature vectors。从经验驱动特征(SIFT、HOG)到数据驱动特征(CNN feature map),提高特征对样本的表示能力。 采用大样本下(ILSVRC)有监督预训练和小样本(原创 2020-10-07 21:07:08 · 922 阅读 · 1 评论 -
【深度学习】:非极大值抑制(NMS)详解
非极大值抑制(Non-maximum suppression,NMS)是一种去除非极大值的算法,常用于计算机视觉中的边缘检测、物体识别等。Non-Maximum Suppression的翻译是非“极大值”抑制,而不是非“最大值”抑制。这就说明了这个算法的用处:找到局部极大值,并筛除(抑制)邻域内其余的值。算法流程:给出一张图片和上面许多物体检测的候选框(即每个框可能都代表某种物体),但是这些框很可能有互相重叠的部分,我们要做的就是只保留最优的框。假设有N个框,每个框被分类器计算得到的分数为Si, 1原创 2020-10-06 17:09:02 · 4382 阅读 · 3 评论 -
【深度学习】:详解Batch Normalization批标准化
论文地址:https://arxiv.org/pdf/1502.03167.pdfBatch Normalization作为最近一年来DL的重要成果,已经广泛被证明其有效性和重要性。虽然有些细节处理还解释不清其理论原因,但是实践证明好用才是真的好,别忘了DL从Hinton对深层网络做Pre-Train开始就是一个经验领先于理论分析的偏经验的一门学问。本文是对论文《Batch Normalization: Accelerating Deep Network Training by Reducing In.原创 2020-09-29 18:55:26 · 178 阅读 · 0 评论 -
深度学习:GoogLeNet结构详解
1. GoogLeNet网络详解GoogLeNet在2014年由Google团队提出(与VGG网络同年,注意GoogLeNet中的L大写是为了致敬LeNet),斩获当年ImageNet竞赛中Classification Task (分类任务) 第一名。 原论文地址:Going deeper with convolutions GoogLeNet 的创新点: 引入了Inception结构(融合不同尺度的特征信息) 使用1x1的卷积核进行降维以及映射处理 (虽然VGG网络中也有,..原创 2020-09-27 21:21:02 · 11246 阅读 · 1 评论 -
Google Colab训练数据集教程
一般情况下,先将我们本地的项目上传到github,然后在colab里面git clone我们的项目:比如:!git clone https://github.com/WZMIAOMIAO/deep-learning-for-image-processing.git然后cd到我们的目录文件夹下面。对于数据集的下载,可以使用wget,然后使用tar解压,!wget http://download.tensorflow.org/example_images/flower_photos.原创 2020-09-26 10:35:26 · 3228 阅读 · 0 评论 -
深度学习:详解VGGNet论文
一、简介 VGG Net由牛津大学的视觉几何组(Visual Geometry Group)和Google DeepMind公司的研究员一起研发的的深度卷积神经网络,在ILSVRC 2014上取得了第二名的成绩,将 Top-5错误率降到7.3%。它主要的贡献是展示出网络的深度(depth)是算法优良性能的关键部分。目前使用比较多的网络结构主要有ResNet(152-1000层),GooleNet(22层),VGGNet(19层),大多数模型都是基于这几个模型上改进,采用新的优化算法,多...原创 2020-09-25 10:38:53 · 2021 阅读 · 0 评论 -
深度学习:使用pytorch训练cifar10数据集(基于Lenet网络)
文档基于b站视频:https://www.bilibili.com/video/BV187411T7Ye流程model.py ——定义LeNet网络模型 train.py ——加载数据集并训练,训练集计算loss,测试集计算accuracy,保存训练好的网络参数 predict.py——得到训练好的网络参数后,用自己找的图像进行分类测试文件目录结构截图:1. model.py先给出代码,模型是基于LeNet做简单修改,层数很浅,容易理解:# 使用torch.nn包来构建神经网原创 2020-09-23 20:40:25 · 2409 阅读 · 3 评论 -
深度学习:开山之作AlexNet论文详解
AlexNet是一个卷积神经网络,由亚历克斯·克里泽夫斯基(Alex Krizhevsky)设计,与伊尔亚‧苏茨克维(Ilya Sutskever)和克里泽夫斯基的博士导师杰弗里·辛顿共同发表,而辛顿最初抵制他的学生的想法。AlexNet参加了2012年9月30日举行的ImageNet大规模视觉识别挑战赛,达到最低的15.3%的Top-5错误率,比第二名低10.8个百分点。原论文的主要结论是,模型的深度对于提高性能至关重要,AlexNet的计算成本很高,但因在训练过程中使用了图形处理器(GPU)而使得计原创 2020-09-22 19:36:27 · 4125 阅读 · 1 评论 -
深度学习:详解卷积神经网络(LeNet)
经典卷积神经网络的结构一般满足如下表达式:输出层 -> (卷积层+ -> 池化层?)+ -> 全连接层+上述公式中,“+”表示一个或者多个,“?”表示一个或者零个,如“卷积层+”表示一个或者多个卷积层,“池化层?”表示一个或者零个池化层。“->”表示 forward 方向。经典的卷积神经网络结构:卷积层尝试解决这两个问题。一方面,卷积层保留输入形状,使图像的像素在高和宽两个方向上的相关性均可能被有效识别;另一方面,卷积层通过滑动窗口将同一卷积核与不同位置的输入重.原创 2020-09-21 18:31:24 · 1351 阅读 · 0 评论 -
深度学习:卷积神经网络中的卷积核
卷积核就是图像处理时,给定输入图像,输入图像中一个小区域中像素加权平均后成为输出图像中的每个对应像素,其中权值由一个函数定义,这个函数称为卷积核。又称滤波器。同样提取某个特征,经过不同卷积核卷积后效果也不一样(这是个重点,为什么说重点,因为CNN里面卷积核的大小就是有讲究的)。比如说:可以发现同样是锐化,下图5x5的卷积核要比上图3x3的卷积核效果细腻不少。说了这么多,我只想说明,(1)原始图像通过与卷积核的数学运算,可以提取出图像的某些指定特征(features)。(2)不原创 2020-09-20 11:12:46 · 72406 阅读 · 7 评论 -
深度学习:权重衰减(weight decay)与学习率衰减(learning rate decay)
正则化方法:防止过拟合,提高泛化能力避免过拟合的方法有很多:early stopping、数据集扩增(Data augmentation)、正则化(Regularization)包括L1、L2(L2 regularization也叫weight decay),dropout。权重衰减(weight decay)L2正则化的目的就是为了让权重衰减到更小的值,在一定程度上减少模型过拟合的问题,所以权重衰减也叫L2正则化。在损失函数中,weight decay是放在正则项(regularizati转载 2021-01-15 16:31:43 · 9221 阅读 · 0 评论 -
深度学习:Dropout解决过拟合问题
在学习深度学习时,常常有人会问到这样一个问题:Dropout技术为什么能防止过拟合?当然,简单的回答是:防止参数过分依赖训练数据,增加参数对数据集的泛化能力。是什么?假设我们要训练这样一个神经网络输入是x输出是y,正常的流程是:我们首先把x通过网络前向传播然后后把误差反向传播以决定 如何更新参数让网络进行学习。使用dropout之后过程变成:1. 首先随机(临时)删掉网络中一半的隐藏神经元,输入输出神经元保持不变(下图中虚线为部分临时被删除的神经元)2. 然后把输入.原创 2020-09-16 20:29:05 · 5585 阅读 · 0 评论 -
深度学习:softmax回归
3.4 softmax回归前几节介绍的线性回归模型适用于输出为连续值的情景。在另一类情景中,模型输出可以是一个像图像类别这样的离散值。对于这样的离散值预测问题,我们可以使用诸如softmax回归在内的分类模型。和线性回归不同,softmax回归的输出单元从一个变成了多个,且引入了softmax运算使输出更适合离散值的预测和训练。本节以softmax回归模型为例,介绍神经网络中的分类模型。3.4.1 分类问题让我们考虑一个简单的图像分类问题,其输入图像的高和宽均为2像素,且色彩为灰度。这样每个像素值都可原创 2020-09-14 17:25:32 · 373 阅读 · 0 评论