版权声明:本文为博主原创文章,欢迎转载,并请注明出处.联系方式:460356155@qq.com 在前一篇中的ResNet-34残差网络,经过减小卷积核训练准确率提升到85%. 这里对训练数据集做数据增强: 1.对原始32*32图像四周各填充4个0像素(40*40),然后随机裁剪成32*32. 2.按0.5的概率水平翻转图片. 代码具体修改如下: transform_train = transforms.Compose([ # 对原始32*32图像四周各填充4个0像素(40*40),然后随机裁剪…
版权声明:本文为博主原创文章,欢迎转载,并请注明出处.联系方式:460356155@qq.com CNN的层数越多,能够提取到的特征越丰富,但是简单地增加卷积层数,训练时会导致梯度弥散或梯度爆炸. 何凯明2015年提出了残差神经网络,即Reset,并在ILSVRC-2015的分类比赛中获得冠军. ResNet可以有效的消除卷积层数增加带来的梯度弥散或梯度爆炸问题. ResNet的核心思想是网络输出分为2部分恒等映射(identity mapping).残差映射(residual mapping)…
版权声明:本文为博主原创文章,欢迎转载,并请注明出处.联系方式:460356155@qq.com 前面通过数据增强,ResNet-34残差网络识别CIFAR10,准确率达到了92.6. 这里对训练过程增加2个处理: 1.训练数据集做进一步处理:对图片随机加正方形马赛克. 2.每50个epoch,学习率降低0.1倍. 代码具体修改如下: 自定义transform: class Cutout(object): def __init__(self, hole_size): # 正方形马赛克的边长,像素…
版权声明:本文为博主原创文章,欢迎转载,并请注明出处.联系方式:460356155@qq.com 在前一篇中的ResNet-34残差网络,经过训练准确率只达到80%. 这里对网络做点小修改,在最开始的卷积层中用更小(3*3)的卷积核,并且不缩小图片尺寸,相应的最后的平均池化的核改为4*4. 具体修改如下: class ResNet34(nn.Module): def __init__(self, block): super(ResNet34, self).__init__() # 初始卷积层核池…
版权声明:本文为博主原创文章,欢迎转载,并请注明出处.联系方式:460356155@qq.com AlexNet在2012年ImageNet图像分类任务竞赛中获得冠军.网络结构如下图所示: 对CIFAR10,图片是32*32,尺寸远小于227*227,因此对网络结构和参数需做微调: 最后一个max-pool层删除 网络定义代码如下: class AlexNet(nn.Module): def __init__(self): super(AlexNet, self).__init__() self…
版权声明:本文为博主原创文章,欢迎转载,并请注明出处.联系方式:460356155@qq.com VGGNet在2014年ImageNet图像分类任务竞赛中有出色的表现.网络结构如下图所示: 同样的,对32*32的CIFAR10图片,网络结构做了微调:删除了最后一层最大池化,具体参见网络定义代码,这里采用VGG19,并加入了BN: ''' 创建VGG块 参数分别为输入通道数,输出通道数,卷积层个数,是否做最大池化 ''' def make_vgg_block(in_channel, out_ch…
一.继承nn.Module类并自定义层 我们要利用pytorch提供的很多便利的方法,则需要将很多自定义操作封装成nn.Module类. 首先,简单实现一个Mylinear类: from torch import nn # Mylinear继承Module class Mylinear(nn.Module): # 传入输入维度和输出维度 def __init__(self,in_d,out_d): # 调用父类构造函数 super(Mylinear,self).__init__() # 使用Pa…
人脸检测及识别python实现系列(3)——为模型训练准备人脸数据 机器学习最本质的地方就是基于海量数据统计的学习,说白了,机器学习其实就是在模拟人类儿童的学习行为.举一个简单的例子,成年人并没有主动教孩子学习语言,但随着孩子慢慢长大,自然而然就学会了说话.那么孩子们是怎么学会的呢?很简单,在人类出生之前,有了听觉开始,就开始不断听到各种声音.人类的大脑会自动组织.分类这些不同的声音,形成自己的认识.随着时间的推移,大脑接收到的声音数据越来越多.最终,大脑利用一种我们目前尚未知晓的机制建立了一个…
1. [深度学习] Keras 如何使用fit和fit_generator https://blog.csdn.net/zwqjoy/article/details/88356094 ps:解决样本数量不均衡:fit_generator中设置参数class_weight = 'auto' 2. 实现批量数据增强 | keras ImageDataGenerator使用 https://www.jianshu.com/p/3da7ffb5d950 ps:数据量不足时一定要加上数据增强…
%matplotlib inline 训练一个分类器 上一讲中已经看到如何去定义一个神经网络,计算损失值和更新网络的权重. 你现在可能在想下一步. 关于数据? 一般情况下处理图像.文本.音频和视频数据时,可以使用标准的Python包来加载数据到一个numpy数组中. 然后把这个数组转换成 torch.*Tensor. 图像可以使用 Pillow, OpenCV 音频可以使用 scipy, librosa 文本可以使用原始Python和Cython来加载,或者使用 NLTK或 SpaCy 处理 特…
前三章我们陆续介绍了半监督和对抗训练的方案来提高模型在样本外的泛化能力,这一章我们介绍一种嵌入模型的数据增强方案.之前没太重视这种方案,实在是方法过于朴实...不过在最近用的几个数据集上mixup的表现都比较哇塞,所以我们再来聊聊~ Mixup paper: mixup: Beyond Empirical Risk Minimization TF源码:https://github.com/facebookresearch/mixup-cifar10 torch复现:ClassicSolution…
Python图像处理库 - Albumentations,可用于深度学习中网络训练时的图片数据增强. Albumentations 图像数据增强库特点: 基于高度优化的 OpenCV 库实现图像快速数据增强. 针对不同图像任务,如分割,检测等,超级简单的 API 接口. 易于个性化定制. 易于添加到其它框架,比如 PyTorch. 1. Albumentations 的 pip 安装 sudo pip install albumentations # 或 sudo pip install -U…
4.2深度卷积网络 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.9迁移学习 迁移学习的基础知识已经介绍过,本篇博文将介绍提高的部分. 提高迁移学习的速度 可以将迁移学习模型冻结的部分看做为一个函数,因为每次都要使用这个冻结模型的输出值来训练自己的网络层,这样从加载模型到预训练模型都会耗费一定的时间. 为此,可以将目标训练集通过冻结模型的输出保存到本地,作为新的训练数据集来训练自己的网络层,这样会更加快捷. 提高迁移学习的精度 如果自身的目标数据集与冻结模型所用的数据集差异较大或者…
本文简单描述如果自定义dataset,代码并未经过测试(只是说明思路),为半伪代码.所有逻辑需按自己需求另外实现: 一.分析DataLoader train_loader = DataLoader( datasets.MNIST('../data', train=True, download=True, transform=transforms.Compose([ transforms.ToTensor(), transforms.Normalize((0.1307,), (0.3081,))…
有人说,「深度学习“等于”深度卷积神经网络算法模型+大规模数据+云端分布式算力」.也有人说,「能够在业内叱咤风云的AI都曾“身经百战”,经历过无数次的训练与试错」.以上都需要海量数据做依托,对于那些数据量匮乏的领域,就衍生出了数据增强技术.即,根据一个原始数据,稍作改动,变成一个对于AI来说的全新的数据. 01 为什么做数据增强? 数据规模的重要性到底怎样呢?可以说,深度学习的火热和蓬勃发展,直接源于普林斯顿大学教授李飞飞及她所带领的团队创作的一个包含百万级图片的数据集ImageNet.工业级人…
目录 原文链接:小样本学习与智能前沿 01 Transforming Samples from Dtrain 02 Transforming Samples from a Weakly Labeled or Unlabeled Data Set 03 Transforming Samples from Similar Data Sets Discussion and Summary 原文链接:小样本学习与智能前沿 上一篇:A Survey on Few-Shot Learning | Intro…
这一章我们不聊模型来聊聊数据,解决实际问题时90%的时间其实都是在和数据作斗争,于是无标注,弱标注,少标注,半标注对应的各类解决方案可谓是百花齐放.在第二章我们也尝试通过多目标对抗学习的方式引入额外的NER样本,或者分词边界来提高people daily小样本数据集的效果. 以下我会结合一些业界的案例和新鲜出炉的NLP数据增强综述,聊聊都有哪些数据增强方案,其中哪些适用于NER以及效果提升.代码详见 people_daily_augment NLP数据增强综述 Paper:Data Augmen…
​  前言  本文介绍了classdataset的几个要点,由哪些部分组成,每个部分需要完成哪些事情,如何进行数据增强,如何实现自己设计的数据增强.然后,介绍了分布式训练的数据加载方式,数据读取的整个流程,当面对超大数据集时,内存不足的改进思路. 本文延续了以往的写作态度和风格,即便是自己知道的内容,也仍然在写之前看了很多的文章来保证内容的正确性和全面性,因此写得极累,耗费时间较长.若有读者看完后觉得有所帮助,文末可以赞赏一点. 文末扫描二维码关注公众号CV技术指南 ,专注于计算机视觉的技术总结…
这一篇博客整理用TensorFlow实现神经网络正则化的内容. 深层神经网络往往具有数十万乃至数百万的参数,可以进行非常复杂的特征变换,具有强大的学习能力,因此容易在训练集上过拟合.缓解神经网络的过拟合问题,一般有两种思路,一种是用正则化方法,也就是限制模型的复杂度,比如Dropout.L1和L2正则化.早停和权重衰减(Weight Decay),一种是增大训练样本量,比如数据增强(Data Augmentation).这些方法的原理阐述可以看我之前整理的文章<深度学习之正则化方法>. 下面用…
环境说明 系统:ubuntu16.04 显卡:Tesla k80 12G显存 python环境: 2.7 && 3.6 前提条件:cuda9.0 cudnn7.0 opencv3.4.0 安装cuda和cudnn教程 安装opencv3.4.0教程 实现YOLOV3的demo 首先安装darknet框架,官网链接 git clone https://github.com/pjreddie/darknet.git cd darknet vim Makefile 根据情况修改Makefile,…
Pytorch多GPU训练 临近放假, 服务器上的GPU好多空闲, 博主顺便研究了一下如何用多卡同时训练 原理 多卡训练的基本过程 首先把模型加载到一个主设备 把模型只读复制到多个设备 把大的batch数据也等分到不同的设备 最后将所有设备计算得到的梯度合并更新主设备上的模型参数 代码实现(以Minist为例) #!/usr/bin/python3 # coding: utf-8 import torch from torchvision import datasets, transforms…
数据增强在机器学习中的作用不言而喻.和图片分类的数据增强不同,训练目标检测模型的数据增强在对图像做处理时,还需要对图片中每个目标的坐标做相应的处理.此外,位移.裁剪等操作还有可能使得一些目标在处理后只有一小部分区域保留在原图中,这需要额外的机制来判断是否需要去掉该目标来训练模型.为此TensorLayer 1.7.0(tf>=1.4 && tl>=1.7)发布中,提供了大量关于目标检测任务的数据集下载.目标坐标处理.数据增强的API.最近的几次发布主要面向新的卷积方式(Defo…
1.1 简介 深层神经网络一般都需要大量的训练数据才能获得比较理想的结果.在数据量有限的情况下,可以通过数据增强(Data Augmentation)来增加训练样本的多样性, 提高模型鲁棒性,避免过拟合. 在计算机视觉中,典型的数据增强方法有翻转(Flip),旋转(Rotat ),缩放(Scale),随机裁剪或补零(Random Crop or Pad),色彩抖动(Color jittering),加噪声(Noise) 笔者在跟进视频及图像中的人体姿态检测和关键点追踪(Human Pose Es…
申明:此教程加工于caffe 如何训练自己的数据图片 一.准备数据 有条件的同学,可以去imagenet的官网http://www.image-net.org/download-images,下载imagenet图片来训练.但是我没有下载,一个原因是注册账号的时候,验证码始终出不来(听说是google网站的验证码,而我是上不了google的).第二个原因是数据太大了... 我去网上找了一些其它的图片来代替,共有500张图片,分为大巴车.恐龙.大象.鲜花和马五个类,每个类100张.需要的同学,可到…
数据增强 在图像的深度学习中,为了丰富图像训练集,更好的提取图像特征,泛化模型(防止模型过拟合),一般都会对数据图像进行数据增强,数据增强,常用的方式,就是旋转图像,剪切图像,改变图像色差,扭曲图像特征,改变图像尺寸大小,增强图像噪音(一般使用高斯噪音)等,但需要注意,不要加入其它图像轮廓的噪音.在不同的任务背景下,我们可以通过图像的几何变换,使用一下一种或者多种组合数据增强变换来增加输入数据的量. 旋转|反射变换(Rotation/reflection):随机旋转图像一定角度:改变图像的内容朝…
from:https://www.zhihu.com/question/56171002/answer/155777359 GAN的作用,也就是为什么GAN会火了(有部分原因可能是因为Lecun的赞赏).如果GAN只是用来生成一些像真是数据一样的数据的话,那不会有像现在这么火.更多的,或者对于机器学习研究员来说,看待的最关键一点应该是GAN可以用来 拟合数据分布 .什么叫拟合数据分布,就是给你一个训练数据,你能通过GAN这个工具,产生和这个数据分布相似的一些数据.有了拟合数据分布的思想,并在这上…
https://pjreddie.com/darknet/yolo/ 具体安装及使用可以参考官方文档https://github.com/pjreddie/darknet https://blog.csdn.net/app_12062011/article/details/77554288#comments     q强烈推荐阅读,系统学习深度学习(三十二)--YOLO v1,v2,v3 并且还有很多其他比较好的文章http://blog.csdn.net/u012235274/article/…
当前最好的实例分割网络非PANet莫属,可是由于模型太新,网上的资料太少,最近的项目需要 实例分割,只能自己踩踩坑了,目前我还没看到一篇关于PANet训练的博客,只有几篇讲论文的. 环境:ubuntu16.04    anaconda3  pytorch0.4.0 将代码down下来后,我在anaconda中新开了一个环境,用的是python3.6,如果用python2的话,在lib文件夹下的make.sh中的python3需要修改一下 然后一开始的时候我没有进行make,直接进行测试,运行 p…
Augmentor和imgaug--python图像数据增强库 Tags: ComputerVision Python 介绍两个图像增强库:Augmentor和imgaug,Augmentor使用比较简单,只有一些简单的操作. imgaug实现的功能更多,可以对keypoint, bounding box同步处理,比如你现在由一些标记好的数据,只有同时对原始图片和标记信息同步处理,才能有更多的标记数据进行训练.我在segmentation和detection任务经常使用imgaug这个库. Au…
相关方法合集见:https://github.com/quincyliang/nlp-data-augmentation 较为简单的数据增强的方法见论文:https://arxiv.org/pdf/1901.11196.pdf 论文中所使用的方法如下: 1. 同义词替换(SR: Synonyms Replace):不考虑stopwords,在句子中随机抽取n个词,然后从同义词词典中随机抽取同义词,并进行替换.(同义词其词向量可能也更加接近,在使用词向量的模型中不一定有用) 2. 随机插入(RI:…