精华内容
下载资源
问答
  • 什么是注意力机制?

    千次阅读 2019-08-03 16:24:26
    Attention机制在近几年来在图像,自然语言处理等领域中都取得了重要的突破,被证明有益于提高模型的性能。 Attention机制本身也是符合人脑和人眼的感知机制,这次我们主要以计算机...随着任务的变化,注意力区域往往...

    Attention机制在近几年来在图像,自然语言处理等领域中都取得了重要的突破,被证明有益于提高模型的性能。

    Attention机制本身也是符合人脑和人眼的感知机制,这次我们主要以计算机视觉领域为例,讲述Attention机制的原理,应用以及模型的发展

    何为Attention机制?

    所谓Attention机制,便是聚焦于局部信息的机制,比如,图像中的某一个图像区域。随着任务的变化,注意力区域往往会发生变化。
    在这里插入图片描述
    面对上面这样的一张图,如果你只是从整体来看,只看到了很多人头,但是你拉近一个一个仔细看就了不得了,都是天才科学家。

    图中除了人脸之外的信息其实都是无用的,也做不了什么任务,Attention机制便是要找到这些最有用的信息,可以想到,最简单的场景就是从照片中检测人脸了。

    基于Attention的显著目标检测

    和注意力机制相伴而生的一个任务便是显著目标检测,即salient object detection。它的输入是一张图,输出是一张概率图,概率越大的地方,代表是图像中重要目标的概率越大,即人眼关注的重点,一个典型的显著图如下:
    在这里插入图片描述
    右图就是左图的显著图,在头部位置概率最大,另外腿部,尾巴也有较大概率,这就是图中真正有用的信息。

    显著目标检测需要一个数据集,而这样的数据集的收集便是通过追踪多个实验者的眼球在一定时间内的注意力方向进行平均得到,典型的步骤如下:
    (1) 让被测试者观察图。

    (2) 用eye tracker记录眼睛的注意力位置。

    (3) 对所有测试者的注意力位置使用高斯滤波进行综合。

    (4) 结果以0~1的概率进行记录。

    于是就能得到下面这样的图,第二行是眼球追踪结果,第三行就是显著目标概率图。

    在这里插入图片描述
    上面讲述的都是空间上的注意力机制,即关注的是不同空间位置,而在CNN结构中,还有不同的特征通道,因此不同特征通道也有类似的原理 ,下面一起讲述。

    Attention模型架构

    注意力机制的本质就是定位到感兴趣的信息,抑制无用信息,结果通常都是以概率图或者概率特征向量的形式展示,从原理上来说,主要分为空间注意力模型,通道注意力模型,空间和通道混合注意力模型三种,这里不区分soft和hard attention。

    1.空间注意力模型(spatial attention)

    不是图像中所有的区域对任务的贡献都是同样重要的,只有任务相关的区域才是需要关心的,比如分类任务的主体,空间注意力模型就是寻找网络中最重要的部位进行处理。

    我们在这里给大家介绍两个具有代表性的模型,第一个就是Google DeepMind提出的STN网络(Spatial Transformer Network[1]),它通过学习输入的形变,从而完成适合任务的预处理操作,是一种基于空间的Attention模型,网络结构如下:

    在这里插入图片描述
    这里的Localization Net用于生成仿射变换系数,输入是C×H×W维的图像,输出是一个空间变换系数,它的大小根据要学习的变换类型而定,如果是仿射变换,则是一个6维向量。

    这样的一个网络要完成的效果如下图:
    在这里插入图片描述
    即定位到目标的位置,然后进行旋转等操作,使得输入样本更加容易学习。这是一种一步调整的解决方案,当然还有很多迭代调整的方案,感兴趣可以去有三知识星球星球中阅读。

    相比于Spatial Transformer Networks 一步完成目标的定位和仿射变换调整,Dynamic Capacity Networks[2]则采用了两个子网络,分别是低性能的子网络(coarse model)和高性能的子网络(fine model)。

    • 低性能的子网络(coarse model)用于对全图进行处理,定位感兴趣区域,如下图中的操作fc。
    • 高性能的子网络(fine model)则对感兴趣区域进行精细化处理,如下图的操作ff。
    • 两者共同使用,可以获得更低的计算代价和更高的精度。
      在这里插入图片描述
      由于在大部分情况下我们感兴趣的区域只是图像中的一小部分,因此空间注意力的本质就是定位目标并进行一些变换或者获取权重。
    2 通道注意力机制

    对于输入2维图像的CNN来说,一个维度是图像的尺度空间,即长宽,另一个维度就是通道,因此基于通道的Attention也是很常用的机制。

    SENet(Sequeeze and Excitation Net)[3]是2017届ImageNet分类比赛的冠军网络,本质上是一个基于通道的Attention模型,它通过建模各个特征通道的重要程度,然后针对不同的任务增强或者抑制不同的通道,原理图如下。

    在这里插入图片描述
    在正常的卷积操作后分出了一个旁路分支,首先进行Squeeze操作(即图中Fsq(·)),它将空间维度进行特征压缩,即每个二维的特征图变成一个实数,相当于具有全局感受野的池化操作,特征通道数不变。

    然后是Excitation操作(即图中的Fex(·)),它通过参数w为每个特征通道生成权重,w被学习用来显式地建模特征通道间的相关性。在文章中,使用了一个2层bottleneck结构(先降维再升维)的全连接层+Sigmoid函数来实现。

    得到了每一个特征通道的权重之后,就将该权重应用于原来的每个特征通道,基于特定的任务,就可以学习到不同通道的重要性。

    将其机制应用于若干基准模型,在增加少量计算量的情况下,获得了更明显的性能提升。作为一种通用的设计思想,它可以被用于任何现有网络,具有较强的实践意义。而后SKNet[4]等方法将这样的通道加权的思想和Inception中的多分支网络结构进行结合,也实现了性能的提升。

    通道注意力机制的本质,在于建模了各个特征之间的重要性,对于不同的任务可以根据输入进行特征分配,简单而有效。

    3 空间和通道注意力机制的融合

    前述的Dynamic Capacity Network是从空间维度进行Attention,SENet是从通道维度进行Attention,自然也可以同时使用空间Attention和通道Attention机制

    CBAM(Convolutional Block Attention Module)[5]是其中的代表性网络,结构如下:
    在这里插入图片描述
    通道方向的Attention建模的是特征的重要性,结构如下:

    在这里插入图片描述
    同时使用最大pooling和均值pooling算法,然后经过几个MLP层获得变换结果,最后分别应用于两个通道,使用sigmoid函数得到通道的attention结果。

    空间方向的Attention建模的是空间位置的重要性,结构如下:
    在这里插入图片描述
    首先将通道本身进行降维,分别获取最大池化和均值池化结果,然后拼接成一个特征图,再使用一个卷积层进行学习。

    这两种机制,分别学习了通道的重要性和空间的重要性,还可以很容易地嵌入到任何已知的框架中。

    除此之外,还有很多的注意力机制相关的研究,比如残差注意力机制,多尺度注意力机制,递归注意力机制等。

    展开全文
  • 什么是「成像清晰」,不严谨的理解就是:物体上一点发出的光线经过透镜后汇聚于成像底片上的同一点的时候,便是成像清晰。如图1所示: 图1 相机对焦情况 (请先忽略F1、F1’、f1’等符号的含义,后面会解释)....

    文章转自:https://www.zhihu.com/question/21427158
    版权归原作者!


    先说结论:对焦就是通过改变透镜与成像面的距离,使得拍摄物成像清晰

    什么是「成像清晰」,不严谨的理解就是:物体上一点发出的光线经过透镜后汇聚于成像底片上的同一点的时候,便是成像清晰。如图1所示:
    这里写图片描述
    图1 相机对焦情况


    (请先忽略F1、F1’、f1’等符号的含义,后面会解释)

    可以看到,图中左方小人头部A点发出的三个方向的光线,经过相机镜头后,汇聚于成像面上的一个点A’。你会问,那A点其他方向的光线呢?小人身上的其他点发出的光线呢?

    A点其他方向的光线也汇于A’点。
    小人身上其他点发出的光线,汇聚于成像面上的其他点。
    即:
    1、同一点发出的各个方向的光线,经过镜头后必定汇于同一点。
    2、同一平面上的不同的点发出的光线,汇聚于同一对应平面的不同点。

    这样,假设我们要拍摄的是小人,它能够在成像面上清晰成像,这时候我们一般就说「对焦于小人」,或者「小人是合焦的」。可以想象,与小人位于同一平面上的所有物体也必定是合焦的。也就是说,对焦对的是一个平面,不可能出现一个深度平面上A物体清晰而B物体模糊的情况。

    但如果出现图2这种情况,A’点不在成像面上。我们就需要调整成像面与相机镜头间的距离,使得其回到图1的状态。也就是图3的结果。
    这里写图片描述
    图2 不合焦情况


    这里写图片描述
    图3 合焦情况


    在图2到图3的变化中,看似是成像面做了移动,但在多数相机中,成像面是固定于相机某个位置的,对焦是通过镜头的前后移动实现的。这个移动大都是几毫米至几十毫米的,要比拍摄物到镜头的距离小得多,所以两图中小人与镜头的距离看起来像是相等。


    景深
    这里写图片描述
    那么,在上图中,除b平面以外的其他平面是不是就“成像模糊”了呢?以c点为例,在成像面上没有严格汇聚于一点,而是形成了一小块区域。而人眼分辨能力有限,只要该区域足够小,在人眼看来就仍然是“清晰”的。因此,焦平面前后一定距离(深度)范围内的景物最终的成像都是“清晰”的,这一深度范围称为景深。

    物体上点发出的光线在成像面上形成的模糊区域称之为弥散圆。之所以是圆形是因为光圈是圆形的。如果我们改变光圈的形状,“弥散圆”的形状也随之改变。
    这里写图片描述
    圆形光圈


    这里写图片描述
    心形光圈


    光圈的大小除了影响进光量以外,对景深也有影响,下图直观的说明了:光圈越大,景深越小。
    这里写图片描述
    光圈影响景深原理图


    下面说说图中其他符号的含义,也是相机成像原理的基本要素。

    1. 凸透镜

    首先,我们知道相机中的镜头使用的是凸透镜。什么叫凸透镜呢?两层含义,“凸”与“凹”相对,指镜片的中心比边缘厚(向外凸出),这样的镜片对光线有汇聚作用,反之则有发散作用;“透”是“透射”的意思,表示大部分光线能通过镜头,反射的光线很少,可忽略不计。

    2. 焦点

    对于凸透镜而言,焦点的定义为:平行于光轴的一束光线经过透镜之后汇聚 于一点,该点称为焦点。或者是,光轴上某点发出的所有光线通过透镜之后成为一组与光轴平行的光,该点称为焦点。
    这里写图片描述
    图4 焦点


    上图中的F点即为焦点。对于上述的定义,我们可以这样理解:若光线从左往右射入凸透镜,在右边汇聚于此点即为焦点;根据光路可逆原理,若光线从这点出发,从右往左射入凸透镜,在左方成为一组平行光,则该点也称为焦点。当然,焦点并不是只针对凸透镜的概念,对于凸面镜、凹面镜、凹透镜,焦点的定义会发生一些变化,不赘述。

    3. 焦平面

    焦平面的定义为:过焦点且与光轴垂直的面。从透镜的光学特性来看,焦平面上的任一点,发出的各个方向的光线经过透镜之后将成为一组平行光,当此点位于光轴上时(即焦点),透射后的平行光平行于光轴。
    这里写图片描述
    图5 焦平面


    4. 主点、主平面

    细心的读者会发现,图5中有两个焦点、两个焦平面,而且它们似乎是关于透镜对称的。实际上,图5将凸透镜简化成一个无厚度且完美对称的薄透镜模型,现在我们来研究这样的简化是否可行。先看图6:
    这里写图片描述
    图6 物方主点与物方主面


    中间为一个凸透镜,光线在通过空气-镜片和镜片-空气时发生两次透射(图中实线)。而实际上我们研究成像规律时,光线在透镜内部的情况我们并不关心。当把入射光作延长线,透射光作反向延长(图中虚线),相交于一点,一个方向的光对应一个点,而且各条光线对应的点位于同一平面,该平面称为主面(principal plane)。这样,我们可以把实际的光路等效为虚线表示的光路,即:认为光线只在主面处发生透射。主面与光轴的交点称为主点(principal point)。习惯上,我们将物体画在图的左侧,因此上述为物方主面/物方主点。对应的有像方主面/像方主点,如下图7:
    这里写图片描述
    图7 像方主点与像方主面


    5. 前/后焦点 前/后焦平面

    与主点/主平面类似,把物体一侧的焦点/焦平面称为物方焦点/物方焦平面,也称为前焦点/前焦平面(front focal point / front focal plane),把物像一侧的称为像方焦点/像方焦平面,也称为后焦点/后焦平面(rear focal point / rear focal plane)。
    这里写图片描述
    图8 前后焦点、焦平面


    6. 焦距

    不少资料这样定义焦距:焦点到透镜中心的距离。用f表示。它表征了透镜汇聚(或发散)光线的能力,焦距越小,透镜汇聚(或发散)光线的能力越强。可以把1/f定义为optical power。

    焦距的表征含义容易理解,但是我们让我们来思考一下上述的定义是否有问题:“透镜中心”指的是什么?光学上的中心?几何中心?事实上,上述定义是基于前述的薄透镜模型而言的,认为透射只发生在一个没有厚度的平面,这个平面的中心自然既是几何中心又是光学中心。但是相机的焦距在几十到几百毫米的数量级,对于精确计算而言,两主面间的距离不可忽略,因此上述定义,以及“焦距就是焦点到光心的距离”之类的定义都是不严谨的。

    维基百科里的定义如下:
    这里写图片描述
    如果你觉得这部分的名词太多太绕,没兴趣去细抠定义的话,只需要记住:我们常说的光心很多时候指的是主点,我们常说的焦距指的是(像方)有效焦距,即(像方)焦点到对应主面的距离

    7. 变焦

    变焦=改变焦距。

    其原理是通过镜头透镜组内不同镜片的相对位置变化来实现的。(具体过程我也并不是很了解。)
    注意与对焦的区别,对焦是整个透镜组的绝对移动。图1到图2其实就是变焦的过程。

    8. 易错点提醒

    最常见的错误是,认为相机图像传感器位置(成像面)=像方焦平面。
    以及,目标拍摄物体所在平面=物方焦平面。
    (当然,很多犯这种错误的示意图连物方像方都不分。)
    可以参见另一个问题:相机成像究竟是成在像平面还是成在焦平面?底片相当于像平面还是焦平面?

    一些资料里把目标物体所在平面称为「对焦平面(World focal plane)」,该名称与焦平面(focal plane)中文多了个「对」字,英文多了个「world」,容易造成混淆。

    总结一下:

    对焦平面 ≠ (物方)焦平面
    成像面一定不在(像方)焦平面上

    最后献上总结所有知识点的一张图:
    这里写图片描述

    展开全文
  • 说到股票做空很多的朋友们,并不太清楚,虽然有些股民已经投资很长时间了,但是对于一些专业的术语还是不太了解,投资股票之前建议可以多学习一些投资的专业术语,关注QR社区,那么股票做空是什么意思?股票做空和做...

    说到股票做空很多的朋友们,并不太清楚,虽然有些股民已经投资很长时间了,但是对于一些专业的术语还是不太了解,投资股票之前建议可以多学习一些投资的专业术语,关注QR社区,那么股票做空是什么意思?股票做空和做多是什么意思?
    1、股票做空是什么意思?
    简单的说,做空就是你觉得某只股票目前的价格高估(或者严重高估)的时候,你可以向某个机构或者券商借这只股票出售(借的时候会有个期限,多少天后归还)。股票做空是什么意思?等借的股票的归还期到的时候如果这只股票价格已经下跌了很多,你就能低价从市场上买入这只股票还给券商,盈利(券商为什么要借给你股票还有这些被借出去的股票从哪里来最后再解释)。建议股民平时多关注QR量化社区,做空是一种股票期货等投资术语:就是比如说当你预期某一股票未来会跌,就在当期价位高时卖出你拥有的股票,再在股价跌到一定程度时买进,这样差价就是你的利润。做空是指预期未来行情下跌,将手中股票按目前价格卖出,待行情跌后买进,获利差价利润。其特点为先卖后买的交易行为。
    2、股票做空和做多是什么意思?
    做空是先借入标的资产,然后卖出获得现金,过一段时间之后,再支出现金买入标的资产归还。做空的常见作用有投机、融资和对冲。其中用做空投机是指预期未来行情下跌,则卖高买低,将手中借入的股票按目前价格卖出,待行情跌后买进再归还,获取差价利润。做多是看好股票、外汇或期货等未来的上涨前景而进行买入持有等待上涨获利。做空的常见作用包括投机、融资和对冲。投机是指预期未来行情下跌,则卖高买低,获取差价利润。融资是在债券市场上做空,将来归还,这可以作为一种借钱的方式。对冲是指当交易商手里的资产风险较高时,他可以通过做空风险资产,减少他的风险暴露。股票做空和做多是什么意思?做多就是做多头,多头对市场判断是上涨,就会立即进行股票买入,所以做多就是买入股票、外汇或期货等。
    以上就是关于股票做空是什么意思及股票做空和做多是什么意思的介绍,希望大家投资之前要谨慎一些。其实要投资股票,对于广大股民来讲还是要注意多学习一些宽客相对论知识,在金融行业变动较大的情况下还是要谨慎的投资,避免给自己带来更大的风险。

    展开全文
  • DevOps到底是什么意思?看完这篇不要再问我了

    万次阅读 多人点赞 2019-12-21 17:44:31
    提到DevOps这个词,我相信很多人一定不会陌生。作为一个热门的概念,DevOps近年来频频出现在各大技术社区和媒体的文章中,备受行业大咖的追捧,也吸引了很多吃瓜群众的围观。那么,Dev...

    提到DevOps这个词,我相信很多人一定不会陌生。

    作为一个热门的概念,DevOps近年来频频出现在各大技术社区和媒体的文章中,备受行业大咖的追捧,也吸引了很多吃瓜群众的围观。

    那么,DevOps是什么呢?

    有人说它是一种方法,也有人说它是一种工具,还有人说它是一种思想。更有甚者,说它是一种哲学。

    越说越玄乎,感觉都要封神啦!DevOps这玩意真的有那么夸张吗?它到底是干嘛用的?为什么行业里都会对它趋之如骛呢?

    今天这篇文章,小枣君就和大家好好聊一聊这个DevOps。

         DevOps的起源    

    这个故事有点长,从头开始讲起吧。

    上个世纪40年代,世界上第一台计算机诞生。从诞生之日起,它就离不开程序(Program)的驱动。而负责编写程序的人,就被称为“程序员”(Programmer)。

    程序员是计算机的驾驭者,也是极其稀缺的人才。那个时候,只有高学历、名校出身的人,才有资格成为程序员,操控计算机。

    随着人类科技的不断发展,PC和Internet陆续问世,我们进入了全民拥抱信息化的时代。越来越多的企业开始将计算机作为办公用的工具,用以提升生产力。而普通个人用户也开始将计算机作为娱乐工具,用以改善生活品质。

    于是,计算机的程序,开始变成了一门生意。程序,逐步演进为“软件(software)”,变成了最赚钱的产品之一。

    在软件产业里,程序员有了更专业的称谓,叫做“软件开发工程师(Software Development Engineer)”,也就是我们常说的“码农”。

    我们知道,一个软件从零开始到最终交付,大概包括以下几个阶段:规划、编码、构建、测试、发布、部署和维护。

    最初,程序比较简单,工作量不大,程序员一个人可以完成所有阶段的工作。

    随着软件产业的日益发展壮大,软件的规模也在逐渐变得庞大。软件的复杂度不断攀升。一个人已经hold不住了,就开始出现了精细化分工。

    码农的队伍扩大,工种增加。除了软件开发工程师之外,又有了软件测试工程师软件运维工程师

    分工之后,传统的软件开发流程是这样的:

    软件开发人员花费数周和数月编写代码,然后将代码交给QA(质量保障)团队进行测试,然后将最终的发布版交给运维团队去布署。所有的这三个阶段,即开发,测试,布署。

    早期所采用的软件交付模型,称之为“瀑布(Waterfall)模型”

    瀑布模型,简而言之,就是等一个阶段所有工作完成之后,再进入下一个阶段。

    这种模型适合条件比较理想化(用户需求非常明确、开发时间非常充足)的项目。大家按部就班,轮流执行自己的职责即可。

    但是,项目不可能是单向运作的。客户也是有需求的。产品也是会有问题的,需要改进的。

    随着时间推移,用户对系统的需求不断增加,与此同时,用户给的时间周期却越来越少。在这个情况下,大家发现,笨重迟缓的瀑布式开发已经不合时宜了。

    于是,软件开发团队引入了一个新的概念,那就是大名鼎鼎的——“敏捷开发(Agile Development)”

    敏捷开发在2000年左右开始被世人所关注,是一种能应对快速变化需求的软件开发能力。其实简单来说,就是把大项目变成小项目,把大时间点变成小时间点,然后这样:

    有两个词经常会伴随着DevOps出现,那就是CI和CD。CI是Continuous Integration(持续集成),而CD对应多个英文,Continuous Delivery(持续交付)或Continuous Deployment(持续部署)。

    美其名曰:“持续(Continuous)”,其实就是“加速——反复——加速——反复……”,这样子。

    画个图大家可能更明白一点:

    敏捷开发大幅提高了开发团队的工作效率,让版本的更新速度变得更快。

    很多人可能会觉得,“更新版本的速度快了,风险不是更大了吗?”

    其实,事实并非如此。

    敏捷开发可以帮助更快地发现问题,产品被更快地交付到用户手中,团队可以更快地得到用户的反馈,从而进行更快地响应。而且,DevOps小步快跑的形式带来的版本变化是比较小的,风险会更小(如下图所示)。即使出现问题,修复起来也会相对容易一些。

    虽然敏捷开发大幅提升了软件开发的效率和版本更新的速度,但是它的效果仅限于开发环节。研发们发现,运维那边,依旧是铁板一块,成为了新的瓶颈。

    运维工程师,和开发工程师有着完全不同的思维逻辑。运维团队的座右铭,很简单,就是“稳定压倒一切”。运维的核心诉求,就是不出问题。

    什么情况下最容易出问题?发生改变的时候最容易出问题。所以说,运维非常排斥“改变”。

    于是乎,矛盾就在两者之间集中爆发了。

    这个时候,我们的DevOps,隆重登场了。

         DevOps到底是什么    

    DevOps这个词,其实就是Development和Operations两个词的组合。它的英文发音是 /de'vɒps/,类似于“迪沃普斯”。

    DevOps的维基百科定义是这样的:

    DevOps是一组过程、方法与系统的统称,用于促进开发技术运营质量保障(QA)部门之间的沟通、协作与整合。

    这个定位稍微有点抽象,但是并不难理解。反正它不是某一个特定软件、工具或平台的名字。

    从目标来看,DevOps就是让开发人员和运维人员更好地沟通合作,通过自动化流程来使得软件整体过程更加快捷和可靠。

    破墙工具

    很多人可能觉得,所谓DevOps,不就是Dev+Ops嘛,把两个团队合并,或者将运维划归开发,不就完事了嘛,简单粗暴。

    注意,这个观点是不对的。这也是DevOps这些年一直难以落地的主要原因。

    想要将DevOps真正落地,首先第一点,是思维转变,也就是“洗脑”。不仅是运维的要洗,开发的也要洗。员工要洗,领导更要洗。

    DevOps并不仅仅是组织架构变革,更是企业文化和思想观念的变革。如果不能改变观念,即使将员工放在一起,也不会产生火花。

    除了洗脑之外,就是根据DevOps思想重新梳理全流程的规范和标准

    在DevOps的流程下,运维人员会在项目开发期间就介入到开发过程中,了解开发人员使用的系统架构和技术路线,从而制定适当的运维方案。而开发人员也会在运维的初期参与到系统部署中,并提供系统部署的优化建议。

    DevOps的实施,促进开发和运维人员的沟通,增进彼此的理(gan)解(qing)。

    在思维和流程改变的同时,想要充分落地DevOps,当然离不开软件和平台的支持。

    目前支持DevOps的软件实在是太多了。限于篇幅,就不一一介绍了。话说回来,现在DevOps之所以被吹得天花乱坠,也有这些软件和平台的功劳,可以趁机卖钱啊。

    DevOps生态圈中令人眼花缭乱的工具

    上述这些关键要素里面,技术(工具和平台)是最容易实现的,流程次之,思维转变反而最困难。

    换言之,DevOps考验的不仅是一家企业的技术,更是管理水平和企业文化。

    对比前面所说的瀑布式开发和敏捷开发,我们可以明显看出,DevOps贯穿了软件全生命周期,而不仅限于开发阶段。

    下面这张图,更明显地说明了DevOps所处的位置,还有它的价值:

         DevOps的发展现状    

    DevOps这个词来源于2009年在比利时根特市举办的首届DevOpsDays大会,为了在Twitter上更方便的传播,由DevOpsDays缩写为DevOps。

    目前,DevOps处于高速增长的阶段。尤其是在大企业中,DevOps受到了广泛的欢迎。

    根据2018年的调查发现,74%的受访者已经接受了DevOps,而前一年这一比例为66%。

    越大的企业,越喜欢DevOps。包括Adobe、Amazon、Apple、Airbnb、Ebay、Etsy、Facebook、LinkedIn、Netflix、NASA、Starbucks、Walmart、Sony等公司,都在采用DevOps。

    如今,DevOps几乎已经成为了软件工程的代名词

    DevOps迅猛发展,相关专业人才的薪资待遇也跟着水涨船高。

    根据调研,DevOps工程师在美国的平均年薪为130000美金,在中国平均年薪也在40万-50万区间,能力强者年薪百万也是比比皆是。

    数据来自招聘网站

    薪资的猛涨,又带动了IT工程师们学习和认证的热潮。

    DevOps的认证目前最受欢迎的就是EXIN DevOps Master和EXIN DevOps Professional。这些认证的培训费用不低,但是仍然吸引了很多人踊跃报名。

    EXIN DevOps认证体系

         DevOps与虚拟化、容器、微服务    

    这几年云计算技术突飞猛进,大家应该对虚拟化、容器、微服务这些概念并不陌生。当我们提到这些概念的时候,也会偶尔提及DevOps。

    它们之间有什么联系呢?

    其实很简单。

    大家可以设想一下,如果要对一项工作进行精细化分工,我们是对一个大铁疙瘩进行加工方便?还是拆成一块一块进行加工更加方便?

    显然是拆分之后会更加方便。

    所谓“微服务”,就是将原来黑盒化的一个整体产品进行拆分(解耦),从一个提供多种服务的整体,拆成各自提供不同服务的多个个体。如下图所示:

    单体式架构(Monolithic)→ 微服务架构(Microservices)

    微服务架构下,不同的工程师可以对各自负责的模块进行处理,例如开发、测试、部署、迭代。

    而虚拟化,其实就是一种敏捷的云计算服务。它从硬件上,将一个系统“划分”为多个系统,系统之间相互隔离,为微服务提供便利。

    容器就更彻底了,不是划分为不同的操作系统,而是在操作系统上划分为不同的“运行环境”(Container),占用资源更少,部署速度更快。

    明白了吧?虚拟化和容器,其实为DevOps提供了很好的前提条件。开发环境和部署环境都可以更好地隔离了,减小了相互之间的影响。

    这也是DevOps为什么09年时不火,现在越来越火的一个主要原因之一。

          最后的话     

    天下武功,无坚不摧,唯快不破。

    时代发展到现在,客户的需求瞬息万变,市场的风向也难以预测。作为企业,想要生存下去,只有让自己变得更快。作为员工,必须让自己眼光更加长远,内心更加包容。

    近期必读:

    复杂(Complex)问题与繁杂(Complicated)问题,你怎么选

    KPI驱动的DevOps转型可行吗?

    你需要的不是一颗银弹,而是一个银盘——敏捷与DevOps有用吗?

    小说体敏捷/DevOps转型教科书

    和实战经验分享

    购书指南


    纸质书、电子书在京东当当亚马逊、微信读书等渠道已全面上架,搜索关键字“猎豹 敏捷”即可找到。

    有声书已登录喜马拉雅、微信读书,适合路上听书的你。

    关注公众号看其他原创作品

    觉得好看,点个“在看”或转发给朋友们,欢迎你留言

    展开全文
  • 那么什么是Recovery?Recovery模式又是什么意思?手机怎么进入Recovery模式? 对于这些大家关心的问题,小编今天就在这里一次性给大家解答,文章有点长,还请您耐心仔细看哦! Recovery的字面意思是恢复、复原。...
  • 入门 | 什么是注意力机制?

    万次阅读 2018-08-24 08:52:00
    来源 : 机器之心, 禁止二次转载注意力机制模仿了生物观察行为的内部过程,即一种将内部经验和外部感觉对齐从而增加部分区域的观察精细度的机制。注意力机制可以快速提取稀疏数据...
  • 这个属性的意义就是告诉搜索引擎不要追踪此特定链接,告诉搜索引擎这个链接是不...简单来说就是说搜索引擎看到属性之后,它就不会或者是减少该链接的投票权重,表示这个链接不是我推荐的,不要把我的权重给他,因为...
  • linux中的shell是什么意思

    千次阅读 2017-04-12 17:40:16
    在编写shell时,第一行一定要指明系统需要那种shell解释你的shell程序,如:#! /bin/bash, #! /bin/csh,/bin/tcsh,还是#! /bin/pdksh . 2.shell中的变量 (1)常用系统变量 $ # :保存程序命令行参数的数目 ...
  • 1、无线千兆指根据路由器天线的根数和每根天线的带宽叠加起来之后超过1000兆的路由器,比如说三根天线由两根2.4G 450兆的天线加上一根5.8G 1000兆的天线,带宽叠加之后等于1900兆。 需要注意的是,如果这种路由器在...
  • 本篇文章给大家带来的内容是关于Monitor(管程)是什么意思?Java中Monitor(管程)的介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 monitor的概念 管程,英文是 Monitor,也常被翻译为...
  • 很多传统行业转型互联网都不重视网络安全问题,觉得自己公司比较小没人会注意,不会有人功击他。殊不知大企业大公司都很重视网络安全防护,而且都有自己的网络安全团队。功击者如果功击这些企业成本太高,风险也大。...
  • 一:什么是网络割接? ** 网络割接就是网络的线路或者设备调整。对网络进行改造、升级、迁移等变更,同时这些网络操作行为,又是发生在一个正在承载业务流量的网络上,不能影响业务,那么这种行为,就称为割接。 ...
  • dau、mau、pcu、dnu、wau、acu、uv的意思什么?怎么分析?  DAU(Daily Active User)日活跃用户数量。常用于反映网站、互联网应用或网络游戏的运营情况。  MAU(monthly active users)月活跃用户人数。是在线游戏...
  • 只要你成功开启虚拟 MFA 之后,每次登录阿里云都需要用到阿里云 APP 中的虚拟 MFA 的六位动态密码才能成功登录,这个做法虽然有点繁琐,但是能够保护我们的阿里云后台还是相当重要的,毕竟这个后台关系到我们所使用...
  • 使用“#define _GNU_SOURCE” 是什么意思? 今天我必须要使用 basename 函数,使用man手册查询了一下这个函数 man 3 basename 发现一个奇怪的信息 名称 basename,dirname-分析路径名组件 简介 #include <libgen....
  • dau、mau、pcu、dnu、wau、acu、uv的意思什么?怎么分析?  DAU(Daily Active User)日活跃用户数量。常用于反映网站、互联网应用或网络游戏的运营情况。  MAU(monthly active users)月活跃用户人数。是在线游戏...
  • 什么是加壳和脱壳技术?加壳和脱壳技术是什么意思? 加壳,是一种通过一系列数学运算,将可执行程序文件或动态链接库文件的编码进行改变(目前还有一些加壳软件可以压缩、加密驱动程序),以达到缩小文件体积或...
  • 首先你很容易误解它为继承于T的所有类的集合,这是大错特错的,相信能看下去你一定见过或用过List吧?为什么我说理解成一个集合是错呢?如果理解成一个集合那为什么不用List来表示?所以不是一个集合,而是T的某一种...
  • Context是什么

    万次阅读 多人点赞 2018-03-12 22:40:17
    1.Context是什么 相信很多人多会问Context到底是什么? 我们可以理解为“上下文”:它贯穿整个应用; 也可以理解成“运行环境”:它提供了一个应用运行所需要的信息,资源,系统服务等; 同样可以理解成“场景”...
  • 自学编程需要注意什么

    千次阅读 多人点赞 2017-12-20 13:43:35
    前几天在知乎上看到这么一个问题,一位在读学生,自己非常想自学编程,但是很怕走一些弯路,于是提问「自学编程需要注意什么?」,我看了一圈回答,看起来都不是自学过来的,很多回答抓不到重点。我的读者都知道,我...
  • transformer中的多头注意力机制

    千次阅读 2021-04-14 12:39:03
    不要被这个多头注意力给吓住,其实这里面就是用到了几个矩阵运算,先不用管怎么运算的,我们先宏观看一下这个注意力机制到底在做什么? 拿单头注意力机制举例: 左边的红框就是我们现在讲的部分,右图就是单头注意...
  • 1m网速是什么意思,1m带宽是什么意思

    万次阅读 2010-03-10 09:39:00
    由于调试中所确定的链接速度是也固定的,因此即便之后噪音消失以后,链接速度也不会提高。ADSL调制解 调器使用时间越长,发生这种情况的可能性就越高,所以连接速度越来越慢。 此时,如果用户重新起动调制解调器...
  • RS232 RTS和CTS是什么意思

    千次阅读 2011-03-26 19:01:00
    34RTS和CTS是什么意思? 解释一:RTS:终端我准备发数据给你,快用CTS应答,准备好没? CTS:好了,来吧 解释二:CTS:主机,我有数据,请求接收 RTS:我是主机,就绪,请求发送。 ...
  • 什么是gulp,怎么使用gulp

    万次阅读 多人点赞 2017-12-28 21:06:55
    在这之前,你肯定会注意到上面箭头所指的位置,那么你一定会看见,文章外面的大拇指图标,动动你的手指,就能点一下它,表示你很喜欢这篇文章。正题:什么是gulp: Gulp 是基于node.js的一个前端自动化构建工具,...
  • 英语中how much 和 how many 分别是什么意思? 都是 提问 XX (某物) 多少个的意思,所修饰词的不同 how much + 不可数名词 有多少? how much用来修饰不可数名词,表示数量,也可单独使用。 how many + 可数名词复数...
  • Pygame安装的详细说明

    千次阅读 2019-08-05 11:45:04
    (或者打开cmd,cd进入安装的文件位置路径,注意一定要索引到当前文件夹的路径) 输入以下指令安装:pip install pygame-1.9.3-cp37-cp37m-win32.whl 显示安装成功,然后用pip list 查看即可,如图: 即安装...
  • imtoken钱包到底是什么呢?智能数字钱包imtoken下载、安装、创建及使用详细教程:很多投资区块链的小伙伴都在使用imtoken钱包,那么imtoken钱包到底是什么呢?1、imtoken钱包其实是一个智能数字钱包,是目前币圈中最...
  • 为了有效地结合两种架构的优势,我们提出了 CoAtNets(发音为“coat”nets),这是一个基于两个关键见解构建的混合模型系列: (1)depthwise Convolution和self-Attention可以通过简单的相对注意力自然地统一起来;...
  • 自然语言处理中的Attention Model:是什么及为什么

    万次阅读 多人点赞 2016-01-20 18:26:02
    让我们来直观地体会一下什么是人脑中的注意力模型。首先,请您睁开眼并确认自己处于意识清醒状态;第二步,请找到本文最近出现的一个“Attention Model”字眼(就是“字眼”前面的两个英文单词,…^@@^)并盯住看三...
  • IQ信号是什么

    万次阅读 2015-06-14 19:11:28
    什么是I/Q信号 当前的数字射频芯片,无一例外的用到了I/Q信号,就算是RFID芯片,内部也用到了I/Q信号,然而绝大部分射频人员,对于IQ的了解除了名字之外,基本上一无所知。 网上有大量关于IQ信号的资料,但都是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 354,756
精华内容 141,902
关键字:

以后一定注意是什么意思