Inception

从零开始学keras(八)

自闭症网瘾萝莉.ら 提交于 2021-02-18 01:52:38
点击上方“ 计算机视觉cv ”即可“进入公众号” 重磅干货第一时间送达 预训练网络   想要将深度学习应用于小型图像数据集,一种常用且非常高效的方法是使用预训练网络。预训练网络(pretrained network)是一个保存好的网络,之前已在大型数据集(通常是大规模图像分类任务)上训练好。如果这个原始数据集足够大且足够通用,那么预训练网络学到的特征的空间层次结构可以有效地作为视觉世界的通用模型,因此这些特征可用于各种不同的计算机视觉问题,即使这些新问题涉及的类别和原始任务完全不同。举个例子,你在 ImageNet 上训练了一个网络(其类别主要是动物和日常用品),然后将这个训练好的网络应用于某个不相干的任务,比如在图像中识别家具。这种学到的特征在不同问题之间的可移植性,是深度学习与许多早期浅层学习方法相比的重要优势,它使得深度学习对小数据问题非常有效。   本例中,假设有一个在 ImageNet 数据集(140 万张标记图像,1000 个不同的类别)上训练好的大型卷积神经网络。ImageNet 中包含许多动物类别,其中包括不同种类的猫和狗,因此可以认为它在猫狗分类问题上也能有良好的表现。   我们将使用 VGG16 架构,它由 Karen Simonyan 和 Andrew Zisserman 在 2014 年开发。对于ImageNet,它是一种简单而又广泛使用的卷积神经网络架构

TensorFlow与PyTorch对比

六月ゝ 毕业季﹏ 提交于 2021-02-11 03:15:52
用TensorFlow还是PyTorch?从TensorFlow开始学起还是PyTorch?在一年前,这个问题毫无争议,当然是TensorFlow. 但时过境迁,现在的情况大不一样了,下面就来分析对比一下这两个主流框架。 首先看一下最近的统计数据,下图的数据是从arxiv论文中统计得到的。上面的黄线是TensorFlow的使用比例,下面的红线是PyTorch的使用比例,可以看出,最近的数据两者已经不差上下,甚至红线PyTorch在2019.6要略胜一筹。 右边的条形图是从1月到6月的累计数据,TensorFlow占比还是要略高一点,但是23%的增长率明显要低于PyTorch的194%.也就是说,现在TensorFlow和PyTorch在学术界的 使用率上来说已经不差上下了 。 来源:https://www.oreilly.com/ideas/one-simple-graphic-researchers-love-pytorch-and-tensorflow 决定一个框架的使用率有哪些因素呢?我总结有以下四个方面: 易用性 速度 算子数量 开源模型 第一是 易用性 。PyTorch自从2018年12月PyTorch 1.0 stable版本正式发布以来,只有半年多的时间,能迅速增长易用性功不可没。PyTorch的易用性一方面是debug简单,可以直接设置断点查看各个tensor的值

Install Tensorflow object detection API in Anaconda (Windows)

百般思念 提交于 2021-02-10 18:32:25
This blog is to explain how to install Tensorflow object detection API in Anaconda in Windows 10 as well as how to train train a convolution neural network to do object detection on your own data set. Steps: 1. Installation and Configuration Install Anaconda First we need to install Anaconda on Windows 10. For specific introduction see this link https://medium.com/@GalarnykMichael/install-python-on-windows-anaconda-c63c7c3d1444 After we have installed Anaconda in windows, lets start to install tensorflow Install Tensorflow open an Anaconda Prompt and run the following code C:\>conda create -

开源数据库运维平台集锦

有些话、适合烂在心里 提交于 2021-02-08 08:45:15
一边学python,为主动开发丰富功能做准备,一边测试应用已经开源的管理平台,不会开发的DBA不是一个好的DBA 当前我能找到的开源数据库运维平台有以下几个,我正在逐一进行验证,结合同学的推荐,最终选出一个成熟好用的 https://github.com/mysql-inception/inception == inception 多家大公司开发的基础,2019-03-05 的时候已经闭源 https://github.com/arkcontrol/arkcontrol == inception 闭源后给了一个推荐链接 arkcontrol 能够集群管理 https://github.com/cookieY/Yearning == 基于 inception 开发平台 sql 查询和审核 https://github.com/myide/see == inception + sqladvisor + soar sql 审核 https://github.com/speedocjx/db_platform == 基于 django 框架开发的管理平台 后续自定义页面的空间大 支持集群管理 https://github.com/jly8866/archer == 基于 inception 的 sql 操作平台 1 archer 结构复杂,很容易崩溃,社区死气沉沉,已经放弃 2

经典网络GoogLeNet介绍

徘徊边缘 提交于 2021-02-07 10:42:21
经典网络GoogLeNet由Christian Szegedy等于2014年提出,论文名为《Going deeper with convolutions》,论文见: https://arxiv.org/pdf/1409.4842v1.pdf GoogLeNet网络用到了Inception-v1模块,关于Inception模块的介绍可以参考: https://blog.csdn.net/fengbingchun/article/details/113482036 假如输入图像大小为n*n,过滤器(filter)为f*f,padding为p,步长(stride)为s,则输出大小为:计算卷积层大小,如果商不是整数,向下取整,即floor函数;计算池化层大小,如果商不是整数,向上取整,即ceil函数。参考: https://blog.csdn.net/fengbingchun/article/details/80262495 GoogLeNet网络: (1).使用了1*1卷积核,减少feature map数。 (2).采用了模块化的结构(Inception-v1模块),方便增添和修改。 (3).网络最后采用全局平均池化(global average pooling)+全连接层+Softmax,而VGG和AlexNet最后使用连续3个全连接层+Softmax。 (4).为避免梯度消失

经典的CNN网络模型概述

南楼画角 提交于 2021-02-01 11:28:54
经典的CNN网络模型概述 接下来几天,将把自己最近读的关于图片分类的经典网络模型论文整理一遍。大概做个摘要。这些论文都是在imagenet上1.2 million数据训练出来的。 由于从这些预训练的网络训练的deep feature有良好的泛化能力,可以应用到其他不同的CV问题,而且比传统的hand-craft feature要好,所以得到广泛应用。 从AlexNet论文说起,ImageNet Classification with Deep Convolutional Neural Networks。 在ImageNet LSVRC-2010 2012表现突出 top-1误差率37.5%,以及top-5误差率17.0% 网络有6000万个参数和650,000个神经元 网络结构五个卷积层,以及某些卷积层后的池化层,以及最后的三个全连接层 引入正则化方法dropout ReLU修正线性单元的引入,比tanh等要快的多 论文地址:https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf 接下来的NIN论文,Network In Network NIN利用Global average pooling去掉了FC layer, 大大减少了模型大小

2012到2020主要的CNN架构总结

£可爱£侵袭症+ 提交于 2021-01-16 13:28:21
来源:DeepHub IMBA 本文约1600字,建议阅读5分钟本文与你讨论每个机器学习工程师都应该知道的十大CNN架构。 卷积神经网络(CNN或ConvNet)是理解图像内容的最佳学习算法之一,并且在图像分割,分类,检测和检索相关任务中表现出出色。有许多公司,例如Google,Microsoft,AT&T,NEC和Facebook,已经建立了活跃的研究小组来探索CNN的新架构。 什么是CNN? CNN被设计用于图像识别任务,最初是用于手写数字识别的挑战(Fukushima 1980,LeCun 1989)。CNN的基本设计目标是创建一个网络,其中网络早期层的神经元将提取局部视觉特征,而后期层的神经元将这些特征组合起来以形成高阶特征。 在几乎每个CNN中,您都会看到三种主要的图层类型。 卷积层 卷积层由一组过滤器(也称为内核)组成,这些过滤器在输入数据上滑动。每个内核都有一个宽度,一个高度和一个宽度×高度权重,用于从输入数据中提取特征。在训练时,内核中的权重使用随机值进行初始化,并将根据训练集进行学习。 池化层 池化层(或下采样层)用于减少特征图的维数,从而从特征图中保存最相关的信息。在池化层中,过滤器会在输入数据上滑动并应用池化操作(最大,最小,平均)。最大池是文献中使用最多的。 全连接层 是由三种类型的层组成的多层感知器:输入层,隐藏层和输出层。输入层接收CNN生成的要素

Robust Adversarial Examples_鲁棒的对抗样本

混江龙づ霸主 提交于 2020-12-29 17:16:48
https://blog.openai.com/robust-adversarial-inputs/?spm=a2c4e.11153940.blogcont149583.11.4ab360c0mXrtX7 原文中包含视频例子。 我们创建的图像可以在从不同的尺度和视角观察时可靠地欺骗神经网络分类器。 这挑战了上周声称自动驾驶汽车难以恶意欺骗,因为它们从多个尺度,角度,视角等捕获图像。 这张印刷在标准彩色打印机上的小猫照片让分类器误以为它是一台“显示器”或“台式电脑”,无论它是如何缩放或旋转的。 我们期望进一步的参数调整也会删除任何人类可见的伪像。 参照论文 1.Synthesizing Robust Adversarial Examples 开箱即用的对抗样本在图像转换下失败。 下面,我们展示了相同的猫图片,由ImageNet上训练的Inception v3错误地归类为台式计算机。 缩小至1.002会导致正确标签“tabby cat”虎斑猫的分类概率覆盖对抗性标签“desktop computer”台式计算机。 然而,我们怀疑积极的努力可以产生一个强大的对抗性的例子,因为已经证明对抗性的例子转移到物理世界。(参照论文 4.Adversarial examples in the physical world ) 尺度不变的对抗样本 可以使用称为 投影梯度下降(projected

如何理解卷积神经网络中的1*1卷积?

ぐ巨炮叔叔 提交于 2020-12-28 10:07:19
我们都知道,卷积核的作用在于特征的抽取,越是大的卷积核尺寸就意味着更大的感受野,当然随之而来的是更多的参数。 早在1998年,LeCun大神发布的LetNet-5模型中就会出,图像空域内具有局部相关性,卷积的过程是对局部相关性的一种抽取。 但是在学习卷积神经网络的过程中,我们常常会看到一股清流般的存在—1*1的卷积! 比如在残差网络的直连里: 残差网络的Bootleneck残差模块里: 在GoogleNet的Inception模块里: 都有1*1卷积核的出现,那么它到底是做什么的?我们应该如何理解1*1卷积的原理? 当1*1卷积出现时,在大多数情况下它作用是升/降特征的维度,这里的维度指的是通道数(厚度),而不改变图片的宽和高。 举个例子,比如某次卷积之后的结果是W*H*6的特征,现在需要用1*1的卷积核将其降维成W*H*5,即6个通道变成5个通道: 如下图就是一个W*H*6的特征,而1*1的卷积核在图上标出,卷积核自身的厚度也是6(图画的好难看!!) 通过一次卷积操作,W*H*6将变为W*H*1,这样的话,使用5个1*1的卷积核,显然可以卷积出5个W*H*1,再做通道的串接操作,就实现了W*H*5。 在这里先计算一下参数数量,一遍后面说明,5个卷积核,每个卷积核的尺寸是1*1*6,也就是一种有30个参数。 我们还可以用另一种角度去理解1*1卷积,可以把它看成是一种全连接 ,如下图

深入理解1*1卷积作用

时光毁灭记忆、已成空白 提交于 2020-12-28 09:32:51
1 . 前言 1*1 卷积在很多模型结构中都使用过, 例如最出名的 Inception 网络 其主要目的就是 进行一次 1 × 1 的卷积来减少特征映射的深度. 在实际操作中, 对于1*1的卷积操作, 我们可以通过改变输出的out channel 来使得输出维度的变化,也就是 降维和升维 , 例如 112 * 112 * 3 经过一个一维卷积 当我们的out channel 设置为32时候, 输出为 112 * 112 * 32 。 2. 二维卷积过程概述 因为1*1的卷积也是一个二维卷积, 所以我们可以先了解一下 二维卷积 是如何操作的 还是以112 * 112 * 3 的图片为例: 在图中, 高度 宽度 都是 112, 深度为3 , 我们经过一个3 * 3 的卷积,步长为1, padding 为1, out channel 为 3 , 输出的图像还是 112 * 112 * 3, 具体计算的话可以自己画个5 5的图 过 3 3 的卷积来操作, 一般公式为 : 新维度 = (图片长 - 卷积核长 + 2 * padding )/ 步长 我们的卷积核的维度为 3 * 3 * 3(深度) , 最后一维和图片本身的深度相同 一次卷积的过程如下: 每一层的 112*112 和 对应的 卷积核的 3 * 3 进行卷积 每一个 channel卷积的结果进行 求和 最后加上偏置 , 就得到