Inception

经典的卷积神经网络及其Pytorch代码实现

爱⌒轻易说出口 提交于 2020-08-07 02:04:25
1.LeNet   LeNet是指LeNet-5,它是第一个成功应用于数字识别的卷积神经网络。在MNIST数据集上,可以达到99.2%的准确率。LeNet-5模型总共有7层,包括两个卷积层,两个池化层,两个全连接层和一个输出层。 import torch import torch.nn as nn from torch.autograd import Variable #方形卷积核和等长的步长 m1=nn.Conv2d(16,33,3,stride=2) #非长方形卷积核,非等长的步长和边界填充 m2=nn.Conv2d(16,33,(3,5),stride=(2,1),padding=(4,2)) #非方形卷积核,非等长的步长,边界填充和空间间隔 m3=nn.Conv2d(16,33,(3,5),stride=(2,1),padding=(4,2),dilation=(3,1)) input=Variable(torch.randn(20,16,50,100)) output=m2(input)  ####LeNet的PyTorch实现 class LeNet(nn.Module): def __init__(self): super(LeNet,self).__init__() self.conv1=nn.Conv2d(3,6,5) self.conv2=nn.Conv2d(6

第二次作业:卷积神经网络 part01

百般思念 提交于 2020-08-04 12:38:50
视频学习 机器学习的数学基础 特征向量形象化的描述: 对一个矩阵施加线性变换后,使矩阵发生尺度变化而不改变方向。 秩形象化的描述: 秩序,复杂度,一个数据分布很容易被捕捉,则秩小,很难被捕捉,则秩大。 数据降维: 只保留前R个较大奇异值及其对应的特征向量(较大奇异值包含了矩阵的主要信息)。 低秩近似 :保留决定数据分布的最主要的模式/方向(丢弃的可能是噪声或其他不关键的信息)。 概率/函数形式的统一: 问题补充: 逐层训练时,在训练下一层时,会冻结上一层的参数。 逐层预训练初始化参数是为了更好的初始化,使其落到比较好的区域里面。 策略设计:训练误差->泛化误差 免费午餐定理: 奥卡姆剃刀原理: “如无必要,勿增实体”, 即“简单有效原理”。如果多种模型能够同等程度地符合一个问题的观测结果,应选择其中使用假设最少的->最简单的模型。 欠拟合和过拟合的解决办法: 频率学派VS贝叶斯学派: 频率学派VS机器学习方法: 卷积神经网络基本组成结构 卷积神经网络的应用: 分类、检索、检测、分割人脸识别、人脸验证、人脸表情识别、图像生成图像风格转换、自动驾驶。 传统神经网络VS卷积神经网络: ​ 深度学习的三部曲: ​ 1.搭建神经网络结构 ​ 2.找到一个合适的损失函数 ​ 3.找到一个合适的优化函数,更新参数 ​ 损失函数: ​ 全连接网络处理图像的问题:参数太多:权重矩阵的参数太多-

构建对象检测模型

淺唱寂寞╮ 提交于 2020-08-04 11:23:50
作者|ALAKH SETHI 编译|VK 来源|Analytics Vidhya 目标检测 我喜欢深度学习。坦率地说,这是一个有大量技术和框架可供倾注和学习的广阔领域。当我看到现实世界中的应用程序,如面部识别和板球跟踪等时,建立深度学习和计算机视觉模型的真正兴奋就来了。 我最喜欢的计算机视觉和深入学习的概念之一是目标检测。建立一个模型的能力,可以通过图像,告诉我什么样的物体存在! 当人类看到一幅图像时,我们在几秒钟内就能识别出感兴趣的物体。机器不是这样的。因此,目标检测是一个在图像中定位目标实例的计算机视觉问题。 好消息是,对象检测应用程序比以往任何时候都更容易开发。目前的方法侧重于端到端的管道,这大大提高了性能,也有助于开发实时用例。 目录 一种通用的目标检测框架 什么是API?为什么我们需要一个API? TensorFlow对象检测API 一种通用的目标检测框架 通常,我们在构建对象检测框架时遵循三个步骤: 首先,使用深度学习模型或算法在图像中生成一组的边界框(即对象定位) 接下来,为每个边界框提取视觉特征。它们将根据视觉特征进行评估,并确定框中是否存在以及存在哪些对象 在最后的后处理步骤中,重叠的框合并为一个边界框(即非最大抑制) 就这样,你已经准备好了你的第一个目标检测框架! 什么是API?为什么我们需要一个API? API代表应用程序编程接口

Kaggle—So Easy!百行代码实现排名Top 5%的图像分类比赛

这一生的挚爱 提交于 2020-08-04 10:18:31
Kaggle—So Easy!百行代码实现排名Top 5%的图像分类比赛 作者:七月在线彭老师 说明:本文最初由彭老师授权翟惠良发布在公众号“七月在线实验室”上,现再由July重新编辑发布到本blog上。 Github: https://github.com/pengpaiSH/Kaggle_NCFM 前言 根据我个人的经验,学好AI,有五个必修:数学、数据结构、Python数据分析、ML、DL,必修之外,有五个选修可供选择:NLP、CV、DM、量化、Spark,然后配套七月在线的这些必修和选修课程刷leetcode、kaggle,最后做做相关开源实验。 今天,咱们就来看一看:如何用百行代码实现Kaggle排名Top 5%的图像分类比赛。 1. NCFM 图像分类 任务 简介 为了保护和监控海洋环境及生态平衡,大自然保护协会( The Nature Conservancy )邀请 Kaggle[1] 社区 的参赛者们开发能够出机器学习算法, 自动 分类和识别远洋捕捞船上 的 摄像头 拍摄 到的图片中鱼类的品种, 例如 不同种类的吞拿鱼和鲨鱼。大自然保护协会一共提供了 3777 张标注的图片 作为 训练集, 这些 图片 被 分为了 8 类, 其中7类 是不同种类的海鱼, 剩余1类则是 不含有鱼的图片, 每张图片 只属于 8类 中的某一类别。 图1给出了 数据集中的几张图片样例

构建对象检测模型

只愿长相守 提交于 2020-08-04 10:04:19
作者|ALAKH SETHI 编译|VK 来源|Analytics Vidhya 目标检测 我喜欢深度学习。坦率地说,这是一个有大量技术和框架可供倾注和学习的广阔领域。当我看到现实世界中的应用程序,如面部识别和板球跟踪等时,建立深度学习和计算机视觉模型的真正兴奋就来了。 我最喜欢的计算机视觉和深入学习的概念之一是目标检测。建立一个模型的能力,可以通过图像,告诉我什么样的物体存在! 当人类看到一幅图像时,我们在几秒钟内就能识别出感兴趣的物体。机器不是这样的。因此,目标检测是一个在图像中定位目标实例的计算机视觉问题。 好消息是,对象检测应用程序比以往任何时候都更容易开发。目前的方法侧重于端到端的管道,这大大提高了性能,也有助于开发实时用例。 目录 一种通用的目标检测框架 什么是API?为什么我们需要一个API? TensorFlow对象检测API 一种通用的目标检测框架 通常,我们在构建对象检测框架时遵循三个步骤: 首先,使用深度学习模型或算法在图像中生成一组的边界框(即对象定位) 接下来,为每个边界框提取视觉特征。它们将根据视觉特征进行评估,并确定框中是否存在以及存在哪些对象 在最后的后处理步骤中,重叠的框合并为一个边界框(即非最大抑制) 就这样,你已经准备好了你的第一个目标检测框架! 什么是API?为什么我们需要一个API? API代表应用程序编程接口

MobileNet 笔记

冷暖自知 提交于 2020-05-09 14:50:00
小模型中的一个代表作MobileNet v1,它是一种基于流水线结构,使用 深度级可分离卷积 构建的轻量级神经网络,并通过 两个超参数 的引入使得开发人员可以基于自己的应用和资源限制选择合适的模型,如下面的1和2 MobileNet是基于深度级可分离卷积构建的网络,其实这种结构最早是出现在GoogleNet v3的inception中,它是将标准卷积拆分为了两个操作:深度卷积(depthwise convolution) 和 逐点卷积(pointwise convolution),Depthwise convolution和标准卷积不同,对于标准卷积其卷积核是用在所有的输入通道上(input channels),而depthwise convolution针对每个输入通道采用不同的卷积核,就是说一个卷积核对应一个输入通道,所以说depthwise convolution是depth级别的操作。而pointwise convolution其实就是普通的卷积,只不过其采用1x1的卷积核。 1.宽度因子 虽然MobileNet网络结构和延迟已经比较小了,但是很多时候在特定应用下还是需要更小更快的模型,为此引入了 宽度因子 alpha(Width Mutiplier)在 每一层 对网络的 输入输出通道数 进行缩减,输入通道数由 M 到 alpha*M,输出通道数由 N 到 alpha*N

GANs Trained by a Two Time-Scale Update Rule Converge to a Local Nash Equilibrium(FID)- 1

三世轮回 提交于 2020-04-28 19:38:58
GANs Trained by a Two Time-Scale Update Rule Converge to a Local Nash Equilibrium https://github.com/bioinf-jku/TTUR Abstract 生成式对抗网络(GANs)擅长创建具有复杂模型的真实图像,这些模型是极大似然不可行的。然而,GAN训练的收敛性尚未得到证实。提出了一种用于训练任意GAN损失函数上具有随机梯度下降的GANs的双时间尺度更新规则(TTUR)。TTUR对于判别器和生成器都有单独的学习速率。利用随机近似理论,证明了TTUR在温和假设下收敛于一个平稳的局部纳什均衡。该收敛性延续到流行的Adam优化,为此我们证明了它遵循一个有摩擦的重球的动力学,因此在客观landscape中更倾向于平坦的最小值。为了评估GANs在图像生成中的性能,我们引入“Fréchet Inception Distance”(FID),能比Inception Score更好地捕获到真实图像和生成图像之间的相似度。在实验中,TTUR提高了DCGANs的学习能力,并改进了Wasserstein GANs (WGAN-GP),使其在CelebA、CIFAR-10、SVHN、LSUN和One Billion Word的基准测试中优于传统的GAN训练。 Introduction 生成式对抗网络

GoogLeNetv4 论文研读笔记

£可爱£侵袭症+ 提交于 2020-04-22 04:26:20
Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning 原文链接 摘要 向传统体系结构中引入残差连接使网络的性能变得更好,这提出了一个问题,即将Inception架构与残差连接结合起来是否能带来一些好处。在此,研究者通过实验表明使用残差连接显著地加速了Inception网络的训练。也有一些证据表明,相比没有残差连接的消耗相似的Inception网络,残差Inception网络在性能上具有微弱的优势。针对是否包含残差连接的Inception网络,本文同时提出了一些新的简化网络,同时进一步展示了适当的激活缩放如何使得很宽的残差Inception网络的训练更加稳定 引言 在本研究中,研究者研究了当时最新的两个想法:残差连接和最新版的Inception架构。他们研究了使用残差连接来代替Inception架构中的过滤连接阶段,这将使Inception架构保持它的计算效率的同时获得残差连接方法的好处。除了将两者直接集成,也研究了Inception本身能否通过加宽和加深来变得更高效。为此,他们设计了Inception v4,相比v3,它有更加统一简化的网络结构和更多的inception模块 在本文中,他们将两个纯Inception变体(Inception-v3和v4)与消耗相似的

基于prometheus的监控解决方案

南楼画角 提交于 2020-04-20 08:34:56
一、前言     鄙人就职于某安全公司,团队的定位是研发安全产品云汇聚平台,为用户提供弹性伸缩的云安全能力。前段时间产品组提出了一个监控需求,大致要求:平台对vm实行动态实时监控,输出相应图表界面,并提供警报(资源不足等问题而产生)等功能。 二、方案调研     经过团队调研,目前业界流行的监控方案大致有这么几种:基于 zabbix 的、基于 prometheus 的、基于 influxdb 等时序数据库的。结合当前我们的业务场景来讲,zabbix对我们来说有点重,而 influxdb 方案灵活但是投入的研发时间可能是比较多的,prometheus就成了我们的不二之选择。 三、prometheus介绍      1. What is prometheus ? 下面是官网的一段原话:      Prometheus is an open-source systems monitoring and alerting toolkit originally built at SoundCloud . Since its inception in 2012, many companies and organizations have  adopted Prometheus, and the project has a very active developer and user

Deep Dream模型与实现

纵饮孤独 提交于 2020-04-17 03:22:04
【推荐阅读】微服务还能火多久?>>>   Deep Dream是谷歌公司在2015年公布的一项有趣的技术。在训练好的卷积神经网络中,只需要设定几个参数,就可以通过这项技术生成一张图像。   本文章的代码和图片都放在我的 github 上,想实现本文代码的同学建议大家可以先把代码Download下来,再参考本文的解释,理解起来会更加方便。 疑问: 卷积层究竟学习到了什么内容? 卷积层的参数代表的意义是什么? 浅层的卷积和深层的卷积学习到的内容有哪些区别?   设输入网络的图形为x,网络输出的各个类别的概率为$t$(1000维的向量,代表了1000种类别的概率),我们以t[100]的某一类别为优化目标,不断地让神经网络去调整输入图像x的像素值,让输出t[100]尽可能的大,最后得到下图图像。 极大化某一类概率得到的图片   卷积的一个通道就可以代表一种学习到的“信息” 。 以某一个通道的平均值作为优化目标 ,就可以弄清楚这个通道究竟学习到了什么,这也是Deep Dream 的基本原理。在下面的的小节中, 会以程序的形式,更详细地介绍如何生成并优化Deep Dream 图像。 TensorFlow中的Deep Dream模型 导入Inception模型   原始的Deep Dream模型只需要优化ImageNet模型卷积层某个通道的激活值就可以了,为此