深度学习
文章平均质量分 90
happy1yao
这个作者很懒,什么都没留下…
展开
-
模型集成
集成学习(ensemble learning)是机器学习中一类学习算法,值训练多个学习器并将它们组合起来使用的方法。这类算法通常在实践中会取得比单个学习器更好的预测结果。基于数据的集成在训练阶段的数据扩充在测试阶段仍然适用。 诸如图像多尺度, 随机剪裁等。以随机剪裁为例, 对某张测试图片随机剪裁可得到n 张图像,测试阶段只需要用训练好的深度网络模型对n张图分别做预测, 之后将预测的各类置信度平均作为该测试图像最终预测结果即可。数据扩充具体操作方法见前文:https://blog.csdn.net/原创 2020-06-02 17:19:33 · 281 阅读 · 0 评论 -
字符识别模型训练与验证
构建验证集在机器学习与深度学习模型的训练过程中,模型非常容易出现过拟合的现象。构建验证集能够有效解决过拟合问题,验证集需要尽可能与测试集保持一致,在训练过程中不断验证模型在验证集上的精度,以此控制模型训练。验证集构建方法(1)留出法(Hold-out)这种方法直接将训练集分成新的训练集与验证集。优点是直接简单,缺点是只得到一份验证集,有可能导致模型在验证集上出现过拟合。留出法适用于数据量较大的情况。(2)交叉验证法(Cross Validation)将训练集划分为K份,将其中的K-1份作为训.原创 2020-05-29 16:32:06 · 496 阅读 · 0 评论 -
提升模型效果的途径
数据增广:基于图像处理的数据增广:几何变换(旋转、缩放、翻转、剪裁、平移、仿射变换)颜色空间变换(亮度、对比度、饱和度调整、颜色空间转行、色彩调整)添加噪声和滤波(注入高斯噪声、椒盐噪声,模糊、锐化)图像混合mixing image随机擦除 random erasing基于深度学习的数据增广基于GAN的数据增强:可用于解决类别不平衡问题神经风格转换:生成不同风格数据,防止模型过拟合AutoAugment3.使用Pytorch进行数据增强transforms.Compose原创 2020-05-26 21:52:31 · 1010 阅读 · 0 评论 -
街景字符识别Baseline解析
上一篇文章已经将pytorch环境配置完毕,本篇对baseline代码进行解析。下一篇文章将对baseline进行改进。相关库导入import os, sys, glob, shutil, jsonos.environ["CUDA_VISIBLE_DEVICES"] = '0' ##用于指定用哪块GPUimport cv2from PIL import Imageimport numpy as npfrom tqdm import tqdm, tqdm_notebook ##时间进原创 2020-05-23 22:35:46 · 534 阅读 · 0 评论 -
pytorch安装踩坑记录
直接anaconda 里直接安装,一直装不上torchvision,版本冲突,由于anaconda自带python3.7,更换python3.6环境。由于之前安装过删除过虚拟环境,一直出现查阅相关资料表示,由于多次创建删除导致两个路径的libssl-1_1-x64.dll时间不一致,需替换统一。按此操作后仍不能解决。直接卸载重装。卸载anaconda使用自带的uninstall.exe3.重新安装后创建虚拟环境conda create -n py36 python=3.6出现错误(..原创 2020-05-20 16:45:06 · 1354 阅读 · 0 评论 -
目标检测之RCNN系列(一)RCNN
总个过程分为4个步骤:a)selective search找出2000个候选框;CNN对输入图片的大小是固定的,因此对于每个输入的候选框都需要缩放到固定的大小;用IOU为2000个bounding box打标签,以便下一步CNN训练使用。IoU大于0.5,那么我们就把这个候选框标注成物体类别,否则我们就把它当做背景类别。b)利用CNN提取特征向量,特征维度为4096;网络架构我们有两个可选方案:第一选择经典的Alexnet;第二选择VGG16。精度比较:Alexnet精度为58.5%,VGG16原创 2020-05-12 17:20:10 · 264 阅读 · 0 评论 -
CNN经典模型(七)DenseNet
CNN史上的一个里程碑事件是ResNet模型的出现,ResNet可以训练出更深的CNN模型,从而实现更高的准确度。ResNet模型的核心是通过建立前面层与后面层之间的“短路连接”(shortcuts,skip connection),这有助于训练过程中梯度的反向传播,从而能训练出更深的CNN网络。今天我们要介绍的是DenseNet模型,它的基本思路与ResNet一致。ResNet是每个层与前面的某...原创 2020-05-07 17:18:10 · 507 阅读 · 0 评论 -
CNN经典模型(六)轻量化网络MobileNet 系列
在实际中应用CNN受限于硬件运算能力与存储(比如几乎不可能在ARM芯片上跑ResNet-152)。所以必须有一种能在算法层面有效的压缩存储和计算量的方法。而MobileNet/ShuffleNet正为我们打开这扇窗。假设有输入feature map,尺寸为HWC,同时有 k个 hw卷积核。对于一般卷积,输出feature map尺寸为H’W’k而Group convolution的实质就是将c...原创 2020-05-07 17:17:55 · 969 阅读 · 0 评论 -
CNN经典模型(五)Xception
Xception是google继Inception后提出的对Inception v3的另一种改进,主要是采用depthwise separable convolution(深度可分离卷积)来替换原来Inception v3中的卷积操作。其实就是将传统的卷积操作分成两步,假设原来是33的卷积,那么depthwise separable convolution就是先用M个33卷积核一对一卷积输入的M...原创 2020-05-07 17:17:34 · 1540 阅读 · 0 评论 -
CNN经典模型(四)GoogleNet系列
基本思想:不需要人为决定使用哪个过滤器,或是否需要池化,而是由网络自行确定这些参数,你可以给网络添加这些参数的所有可能值,然后把这些输出连接起来,让网络自己学习它需要什么样的参数,采用哪些过滤器组合。Inception V1它最大的特点是控制了计算量和参数量的同时,获得了非常好的分类性能——top-5错误率6.67%,只有AlexNet的一半不到。Inception V1有22层深,比Alex...原创 2020-05-07 17:03:42 · 339 阅读 · 0 评论 -
CNN经典模型(三)ResNet系列
简单来说,resnet巧妙地利用了shortcut连接,解决了深度网络中模型退化的问题。模型特点:(1)在卷积核relu之间增加了BNdef conv_batchnorm_relu(x, filters, kernel_size, strides): x = Conv2D(filters=filters, kernel_size=kernel_size...原创 2020-05-07 17:03:15 · 567 阅读 · 0 评论 -
CNN经典模型(二) VGG系列
VGG16VGG16相比AlexNet的一个改进是采用连续的几个3x3的卷积核代替AlexNet中的较大卷积核(11x11,7x7,5x5)。对于给定的感受野(与输出有关的输入图片的局部大小),采用堆积的小卷积核是优于采用大的卷积核,因为多层非线性层可以增加网络深度来保证学习更复杂的模式,而且代价还比较小(参数更少)。网络结构VGG-16的这个数字16,就是指在这个网络中包含16个卷积层和...原创 2020-05-07 17:02:40 · 502 阅读 · 0 评论 -
CNN经典模型(一)AlexNet
网络结构from tensorflow.keras.layers import Input, Conv2D, \ BatchNormalization, MaxPool2D, Flatten, Dense, Dropoutinput = Input(shape=(224, 224, 3))x = Conv2D(filters=96, kernel_siz...原创 2020-05-07 16:36:12 · 233 阅读 · 0 评论 -
深度学习笔记(二)NIN网络
1×1卷积的作用以下内容摘抄自:http://www.caffecn.cn/?/question/136问:发现很多网络使用了1X1卷积核,这能起到什么作用呢?另外我一直觉得,1X1卷积核就是对输入的一个比例缩放,因为1X1卷积核只有一个参数,这个核在输入上滑动,就相当于给输入数据乘以一个系数。不知道我理解的是否正确答1:对于单通道的feature map和单个卷积核之间的卷积来说,题主的...转载 2020-05-04 16:54:31 · 352 阅读 · 0 评论 -
深度学习笔记(一)BatchNormalization()
原文地址:http://blog.csdn.net/hjimce/article/details/50866313一、背景意义近年来深度学习捷报连连、声名鹊起,随机梯度下架成了训练深度网络的主流方法。尽管随机梯度下降法对于训练深度网络简单高效,但是它有个毛病,就是需要我们人为的去选择参数,比如学习率、参数初始化、权重衰减系数、Drop out比例等。这些参数的选择对训练结果至关重要,以至于我们...转载 2020-05-03 22:00:15 · 193 阅读 · 0 评论 -
AlexNet与VGG
AlexNetAlexNet是神经网络之父Hinton的学生Alex Krizhevsky开发完成,总共有8层,其中有5个卷积层,3个全链层,前5层其实不完全是卷积层,有些层还加入了池化层,并对数据进行标准化处理。Alex在他的论文中写到,他在处理图片的时候使用了两个GPU进行计算,在卷积过程中他做了分组的处理。第一层第一层包含了卷积层、标准化层和池化层。在Tensorflow中,搭建...原创 2018-10-30 15:44:13 · 701 阅读 · 0 评论 -
目标检测(一)——R-CNN
目标检测=目标识别+定位,常见的算法有:R-CNN,Fast R-CNN,Faster R-CNN,YOLO,R-FCN 等,RCNN(Regions with CNN features)是将CNN方法应用到目标检测问题上的一个里程碑,本文我们先介绍R-CNN。分类与检测的区别物体检测和图片分类的区别:1.图片分类不需要定位,而物体检测需要定位出物体的位置,也就是相当于把物体的bbox...原创 2018-11-16 15:38:53 · 315 阅读 · 0 评论 -
目标检测(二)——SPP-Net
上一篇R-CNN中提到过, R-CNN是先提取region,每个region都过这五个卷积。这样做计算量非常庞大。针对这个问题,SPP-Net做了改进,它是整个图过一次卷积(五个卷积操作),然后取对应得region。同样的,卷积可使用Alex和VGG。一、SPP-Net的结构Conv5计算出的feature map也是任意大小的,现在经过SPP之后,...原创 2018-11-23 14:52:32 · 403 阅读 · 0 评论 -
L1、L2、smooth L1三类损失函数
一、常见的MSE、MAE损失函数1.1 均方误差、平方损失均方误差(MSE)是回归损失函数中最常用的误差,它是预测值与目标值之间差值的平方和,其公式如下所示:下图是均方根误差值的曲线分布,其中最小值为预测值为目标值的位置。优点:各点都连续光滑,方便求导,具有较为稳定的解缺点:不是特别的稳健,为什么?因为当函数的输入值距离中心值较远的时候,使用梯度下降法求解的时候梯度很大,可能导致梯度爆...原创 2019-06-21 10:59:02 · 72603 阅读 · 3 评论 -
网络训练trick汇总(一)解决梯度爆炸问题
一、梯度爆炸1.什么是梯度爆炸?误差梯度是神经网络训练过程中计算的方向和数量,用于以正确的方向和合适的量更新网络权重。在深层网络或循环神经网络中,误差梯度可在更新中累积,变成非常大的梯度,然后导致网络权重的大幅更新,并因此使网络变得不稳定。在极端情况下,权重的值变得非常大,以至于溢出,导致 NaN 值。网络层之间的梯度(值大于 1.0)重复相乘导致的指数级增长会产生梯度爆炸。2.梯度爆炸...原创 2019-06-21 11:33:27 · 1404 阅读 · 0 评论 -
网络训练trick汇总(二)解决数据不平衡问题
1. 什么是类别不平衡问题在机器学习的实践中,我们通常会遇到样本数据中正负样本比例不平衡的情况,也叫数据倾斜。在二分类问题中经常遇到这种情况,如垃圾邮件的分类;在目标检测中,也经常遇到数据不平衡的情况,检测器需要在每张图像中评价一万个到十万个候选位置,然而其中只有很少的点真的含有目标物体。这就导致了训练效率低下和简单的负面样本引发整个模型表现下降的问题。2.如何解决不平衡问题从数据角度(1...转载 2019-07-01 09:54:06 · 1978 阅读 · 0 评论 -
Inception-ResNet-v1网络结构
Inception V4的网络结构如下: 从图中可以看出,输入部分与V1到V3的输入部分有较大的差别,这样设计的目的为了:使用并行结构、不对称卷积核结构,可以在保证信息损失足够小的情况下,降低计算量。结构中1*1的卷积核也用来降维,并且也增加了非线性。 Inception-ResNet-v2与Inception-ResNet-v1的结构类似,除了stem部分。Inception-...转载 2018-07-05 14:18:32 · 617 阅读 · 0 评论