精华内容
下载资源
问答
  • 在第三步中,我们设置好了旅游目的地,,那么接下来,按照正常的逻辑顺序,第四步,就可以设置旅游出发地或者出发城市了: 首先登陆后台,然后依次点击【出发地管理】–【出发设置】,就可以展开出发地的设置项了,...

    在第三步中,我们设置好了旅游目的地,,那么接下来,按照正常的逻辑顺序,第四步,就可以设置旅游出发地或者出发城市了:

    首先登陆后台,然后依次点击【出发地管理】–【出发设置】,就可以展开出发地的设置项了,出图所示:

    旅游出发地管理

     

    然后点击,右上角的【添加出发地】,如图所示:

    添加出发地

     

    出发地名称,这个很简单,比如填广州,成都等

    出发地排序,这个请填写整数,这个是和前台线路列表筛选页的出发地排序对应的,数字大的会排在前面,如图:

    前台出发地排版

     

     


    二代旅游CMS官方博客:http://blog.erdaicms.com

    展开全文
  • 在第三步中,我们设置好了旅游目的地,,那么接下来,按照正常的逻辑顺序,第四步,就可以设置旅游出发地或者出发城市了: 首先登陆后台,然后依次点击【出发地管理】–【出发设置】,就可以展开出发地的设置项了,...

    在第三步中,我们设置好了旅游目的地,,那么接下来,按照正常的逻辑顺序,第四步,就可以设置旅游出发地或者出发城市了:

    首先登陆后台,然后依次点击【出发地管理】–【出发设置】,就可以展开出发地的设置项了,出图所示:

    旅游出发地管理

     

    然后点击,右上角的【添加出发地】,如图所示:

    添加出发地

     

    出发地名称,这个很简单,比如填广州,成都等

    出发地排序,这个请填写整数,这个是和前台线路列表筛选页的出发地排序对应的,数字大的会排在前面,如图:

    前台出发地排版

     

     

    详细介绍请到官方blog查看,地址:http://blog.erdaicms.com

     

    转载于:https://www.cnblogs.com/erdaicms/p/5324541.html

    展开全文
  • jQuery LigerUI V1

    2013-08-22 12:20:21
    jQuery LigerUI V1
  • MobileNet v1论文笔记

    2018-09-16 18:12:37
    MobileNet 论文笔记 ...出发点一个是Filter大小上,一个是Feature大小上。 模型结构 超参数1:Width Multiplier 简单来说这个就是调整Filter大小,进而减小模型大小 ...

    MobileNet v1论文笔记

    论文链接

    概述

    论文思想非常简单,主要就是利用depthwise CNN的结构来减少计算量,从而减小模型大小。论文提出了两个超参数,可以简单的调整模型大小。出发点一个是从Filter大小上,一个是从Feature大小上。

    核心思想

    (1)模型结构

    模型结构

    (2)超参数1:Width Multiplier

    简单来说这个就是调整Filter大小,进而减小模型大小
    这里写图片描述

    (3)超参数2:Resolution Multiplier

    调整Feature大小,进而减小模型大小
    这里写图片描述

    相关实现代码

    展开全文
  • 针对传统算法在抗光照变化影响、大位移光流和异质点滤除等方面的不足,人类视觉认知机理出发,提出了一种基于机器学习和生物模型的运动自适应 V1 -- MT(motion-adaptive V1 -- MT,MAV1MT)序列图像光流估计算法....
  • ShuffleNetV1/V2简述 | 轻量级网络

    千次阅读 2020-07-06 10:23:46
    ShuffleNet系列是轻量级网络中很重要的一个系列,ShuffleNetV1提出了channel shuffle操作,使得网络可以尽情地使用分组卷积来加速,而ShuffleNetV2则推倒V1的大部分设计,实际出发,提出channel split操作,在加速...

    ShuffleNet系列是轻量级网络中很重要的一个系列,ShuffleNetV1提出了channel shuffle操作,使得网络可以尽情地使用分组卷积来加速,而ShuffleNetV2则推倒V1的大部分设计,从实际出发,提出channel split操作,在加速网络的同时进行了特征重用,达到了很好的效果
    来源:晓飞的算法工程笔记 公众号

    ShuffleNet V1


    论文: ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices

    Introduction

      神经网络的精度越来越高,而推理性能也在逐渐变慢,在实际应用中不得不在性能与准确率间进行折中。为此,论文对小网络的耗时进行分析,提出了ShuffleNet。论文首先介绍了ShuffleNet的核心操作Channel Shuffle以及Group Convolutions,然后再介绍Shuffle unit的结构,最后介绍ShuffleNet的架构。

    Channel Shuffle for Group Convolutions

      在目前的一些主流网络中,通常使用pointwise卷积进行维度的降低,从而降低网络的复杂度,但由于输入维度较高,pointwise卷积的开销是十分巨大的。对于小网络而言,昂贵的pointwise卷积会带来明显的性能下降,比如在ResNext unit中,pointwise卷积占据了93.4%的计算量。为此,论文引入了分组卷积,首先探讨了两种ShuffleNet的实现:

    • 图1a是最直接的方法,将所有的操作进行了绝对的维度隔离,但这会导致特定的输出仅关联了很小一部分的输入,阻隔了组间的信息流,降低了表达能力。
    • 图1b对输出的维度进行重新分配,首先将每个组的输出分成多个子组,然后将每个子组输入到不同的组中,能够很好地保留组间的信息流。

      图1b的思想可以简单地用channel shuffle操作进行实现,如图1c所示,假设包含 g g g组的卷积层输出为 g × n g\times n g×n维,首先将输出reshape()为 ( g , n ) (g, n) (g,n),然后进行transpose(),最后再flatten()回 g × n g\times n g×n维。

    ShuffleNet Unit

      基于channel shuffle操作,论文提出了两种ShuffleNet unit,从图2a的基础残差结构开始,中间包含一个 3 × 3 3\times 3 3×3深度卷积进行特征提取:

    • 图2b为特征图大小不变的ShuffeNet unit,将开始的 1 × 1 1\times 1 1×1卷积层替换成pointwise分组卷积+channel shuffle操作,第二个pointwise分组卷积的作用是为了恢复到unit的输入维度,方便与shortcut进行element-wise addition。后面的两个卷积操作根据可分离深度卷积论文的建议只接了BN,没有接BN+ReLU。论文尝试了在第二个pointwise分组卷积后面再接一次channel shuffle操作,但并没有提高很多精度。
    • 图2c为特征图大小减半的ShuffleNet unit,可用于block间的特征下采样。主要在shortcut中添加 3 × 3 3\times 3 3×3平均池化以及将最后的element-wise addition替换为channel concatenation,增加输出维度且不会带来太多的计算量。

      Shuffle unit的计算是比较高效的,对于 c × h × w c\times h\times w c×h×w的输入,bottleneck的中间维度为 m m m,ResNet unit的计算量为 h w ( 2 c m + 9 m 2 ) hw(2cm + 9m^2) hw(2cm+9m2)FLOPs,ResNeXt unit的计算量为 h w ( 2 c m + 9 m 2 / g ) hw(2cm+9m^2/g) hw(2cm+9m2/g)FLOPs,ShuffleNet unit的计算量为 h w ( 2 c m / g + 9 m ) hw(2cm/g + 9m) hw(2cm/g+9m) g g g为卷积的分组数。在同等计算资源情况下,计算量的减少意味着ShuffeNet可以使用维度更多的特征图,这在小网络中十分重要。
      需要注意的是,尽管深度卷积通常有较低的理论复杂度,但在实现时的效率是不高的。为此,ShuffleNet仅对bottleneck中的特征(维度较低)使用深度卷积。

    Network Architecture

      ShuffleNet的结构如表1所示,3个不同的stage由ShuffleNet unit堆叠而成,每个stage的首个ShuffleNet unit比较特殊,使用图2c的stride=2结构,特征图大小缩小一倍,channel数增大一倍。其它的ShuffleNet unit使用图2b的结构,bootlneck的维度设定为输出的 1 / 4 1/4 1/4。表1中设计不同分组数的网络,并修改了对应的输出维度,模型大小整体保持在140MFLOPs左右,网络的分组数越大,可设置维度也越大。

    Experiments

      为了设定不同的网络复杂度,对表1的网络层维度加一个缩放因子 s s s,比如ShuffleNet 0.5X为表1的所有层输出维度减少一倍。

      对不同scale和分组数的性能。

      对比channel shuffle对不同网络大小作用。

      在保持复杂度的情况下,将stage2-4尽量替换成类似于其它主流网络结构(具体设计看原文),进行性能对比。

      对比同复杂度的MobileNet性能。

      对比主流网络的性能。

      对比作为目标检测主干的性能。

      CPU单线程推理速度对比。

    Conclusion

      ShuffleNet的核心在于使用channel shuffle操作弥补分组间的信息交流,使得网络可以尽情使用pointwise分组卷积,不仅可以减少主要的网络计算量,也可以增加卷积的维度,从实验来看,是个很不错的work。

    ShuffleNet V2


    论文: ShuffleNet V2: Practical Guidelines for Efficient
    CNN Architecture Design

    Introduction

      论文发现,作为衡量计算复杂度的指标,FLOPs实际并不等同于速度。如图1所示,FLOPs相似的网络,其速度却有较大的差别,只用FLOPs作为衡量计算复杂度的指标是不够的,还要考虑内存访问消耗以及GPU并行。基于上面的发现,论文从理论到实验列举了轻量级网络设计的5个要领,然后再根据设计要领提出ShuffleNet V2。

    Practical Guidelines for Efficient Network Design

      为了保证结果的正确性,论文在以下工业设备中进行理论的相关测试:

    • GPU. A single NVIDIA GeForce GTX 1080Ti is used. The convolution library is CUDNN 7.0
    • ARM. A Qualcomm Snapdragon 810.

      包含以下5个轻量级网络设计要领:

    1. G1: Equal channel width minimizes memory access cost (MAC).

      主流的网络大都使用深度分离卷积,其中pointwise卷积承担了大部分的计算开销。假设输入维度 c 1 c_1 c1和输出维度 c 2 c_2 c2,特征图大小为 h h h w w w,则 1 × 1 1\times 1 1×1的卷积核的计算量 B = h w c 1 c 2 B=hwc_1 c_2 B=hwc1c2,内存访问消耗 M A C = h w ( c 1 + c 2 ) + c 1 c 2 MAC=hw(c_1+c_2)+c_1 c_2 MAC=hw(c1+c2)+c1c2,MAC可以表示为B相关的公式:

    M A C = h w ( c 1 + c 2 ) + c 1 c 2 ≥ h w c 1 c 2 + c 1 c 2 = h w B + B h w MAC=hw(c_1+c_2)+c_1 c_2 \ge hw\sqrt{c_1 c_2} + c_1 c_2=\sqrt{hwB} + \frac{B}{hw} MAC=hw(c1+c2)+c1c2hwc1c2 +c1c2=hwB +hwB

      上式在 c 1 c_1 c1 c 2 c_2 c2相等时取得最小值,即输入输出维度相等时,内存访问消耗最小。

      为了避免理论与实际不符,论文在实际设备上进行了对比,在保持FLOPs不变的情况下,调整输入输出维度的比例,可以看到1:1的情况下计算速度最快。因此,在设计结构时尽量保持卷积的输入输出的维度一致。

    1. G2: Excessive group convolution increases MAC

      分组卷积能够降低FLOPs,在固定的FLOPs情况下,分组卷积能够使用更多的channel数,但channel的增加会带来MAC的提高, 1 × 1 1\times 1 1×1分组卷积的MAC与FLOPs的关系为

    g g g为分组数, B = h w c 1 c 2 / g B=hwc_1 c_2/g B=hwc1c2/g为FLOPs。在固定输入和计算量情况下,MAC随着 g g g增加而增加。

      论文同样也在实际设备上进行了对比,使用更多的分组反而降低了推理的速度,主要由于MAC的增加。因此,需要谨慎地根据平台和任务选择分组数,选择大的分组数能带来一定程度的准确率提升,但也会导致计算消耗的快速提升。

    1. G3: Network fragmentation reduces degree of parallelism

      目前一些网络在单个block中使用了多通过,比如NASNET-A在单个block中使用了13个分支,而常规的网络仅使用2-3个分支。尽管这样的设计能够提升准确率,但是对设备并行计算不友好,会带来性能的下降。

      在实际设备上进行对比,在固定FLOPs情况下,分别对比串行和并行分支结构的性能。从结果来看,单分支的结构性能最好,性能的下降在GPU设备上最为明显。

    1. G4: Element-wise operations are non-negligible

      论文对ShuffleNetV1和MobileNetV2的耗时进行了分析,发现element-wise操作(ReLU, AddTensor, AddBias, etc)的消耗是不可忽视的,特别在GPU设备上。尽管这些操作FLOPs不高,但其MAC相对较高。

      在实际设备对比中,固定FLOPs的情况下,使用更多的element-wise操作会导致网络的性能下降。

      最后总结下论文发现的网络设计要领:

    • 使用相同输入输出维度的卷积
    • 了解分组卷积带来的损耗
    • 减少分支的数量
    • 减少element-wise操作

    ShuffleNet V2: an Efficient Architecture

      如上面提到的,ShuffleNetV1的pointwise分组卷积以及bottleneck结果均会提高MAC,导致不可忽视的计算损耗。为了达到高性能以及高准确率,关键是在不通过稠密卷积以及过多分组的情况下,获得输入输出一样的大维度卷积。

      ShuffeNetV1的unit结构如图3ab所示,为了达到上面的目的,V1的基础上加入channel split操作,如图3c所示。在每个unit的开头,将特征图分为 c − c ′ c-c^{'} cc以及 c ′ c^{'} c两部分。根据G3,一个分支直接往后传递。根据G1,另一个分支包含3个输入输出维度一样的卷积。根据G2,不再使用分组卷积,而且unit的开头已经相当于进行了分组卷积。在完成卷积操作后,将特征concate,恢复到unit的输入大小(符合G1),然后进行channel shuffle操作。这里没有了element-wise adddition操作,符合了G4,在实现的时候将concat/channel shuffle/channel split合在一起做了,能够进一步提升性能。
      空间下采样的操作进行了少量的修改,如图3d所示,去掉了channel split操作,因此输出的维度会翻倍。

      类似于ShuffleNetV1,设定 c ′ = c / 2 c^{'}=c/2 c=c/2stage2-4为堆叠ShuffleNet unit的结构,在全局池化前加了一个 1 × 1 1\times 1 1×1卷积来帮助特征融合。ShuffleNetV2不仅速度快,准确率也不低,主要得益于两个方面,首先是模型性能高,使得可以使用更大的维度以及网络容量,其次是channel split可以使得部分特征直接穿过block,相当于DenseNet的特征重用。

      论文对DenseNet以及ShuffleNetV2的特征重用程度进行了可视化对比,在DenseNet中,相邻层的连接比其它层更强,意味着所有层的稠密连接存在冗余。而在ShuffleNet中,层间的影响力以 ( 1 − c ′ ) / c = 0.5 (1-c^{'})/c=0.5 (1c)/c=0.5的倍数进行衰减,与DenseNet有一定的相似性。

    Experiment

      将ShuffleNetV2 unit应用到大网络中进行对比。

      对比ShuffleNetV2作为检测网络主干的性能。

      与不同大小的主流分类网络进行性能对比。

    Conclusion

      论文从实践出发,以实际的推理速度为指导,总结出了5条轻量级网络的设计要领,并根据要领提出了ShuffleNetV2,很好地兼顾了准确率和速度,其中channel split操作十分亮眼,达到了类似DenseNet的特征重用效果。

    CONCLUSION


      ShuffleNet系列是轻量级网络中很重要的一个系列,ShuffleNetV1提出了channel shuffle操作,使得网络可以尽情地使用分组卷积来加速,而ShuffleNetV2则推倒V1的大部分设计,从实际出发,提出channel split操作,在加速网络的同时进行了特征重用,达到了很好的效果 。



    如果本文对你有帮助,麻烦点个赞或在看呗~
    更多内容请关注 微信公众号【晓飞的算法工程笔记】

    work-life balance.

    展开全文
  • MoCo v1原理解析

    2021-02-17 15:47:45
    有了以上的Motivations,论文Contrastive Learning(对比学习)框架的角度出发提出了MoCo用于无监督的视觉表示学习。 文章目录 Momentum Contrast for Unsupervised Visual Representation Learning论文阅读笔记 1...
  • 图的遍历

    2021-01-21 15:09:28
    用深度优先搜索(DFS)法遍历图 深度优先搜索:每次都是沿着路径到不能再前进时才退到最近的岔道口。 以一个有向图进行DFS遍历: V0 开始进行遍历,黑色...从V1出发访问V3,但是V3出发不能到达任何未访问顶点,因此退
  • 移动通信自20世纪80年代... 本白皮书5G愿景与需求出发,分析归纳了5G主要技术场景、关键挑战和适用关键技术,提取了关键能力与核心技术特征并形成5G概念,在此基础上,结合标准与产业趋势,提出了5G适合的技术路线。
  • 哈密尔顿回路环球旅行问题即一个结点出发经过所有结点回到出发点结点不能重复经过 设v1v2.vn是已知的n个城镇城镇vi到城镇vj的距离为dij现求从v1出发经各城镇一次且仅一次返回v1的最短路程 问题描述 解决方案 1....
  • 写在前边:本文档翻译自JVET组织在都灵会议发布的文档Algorithm description of Joint Exploration Test Model 7 (JEM7), 附上下载链接...这是我第一次写文档,出发点是...
  • Sicily 3703. Huffman Coding V1

    千次阅读 2012-02-10 00:05:50
    Huffman树……自己查了下资料才知道具体是怎么弄出来的,基本步骤是: ...4.查找某一个节点的编码时,根节点出发,往左是0,往右是1,直到找到这个节点(必为叶子),整个历程就是这个节点的编码
  • StyleGAN是2018年的一篇文章,目前已经被TPAMI收录,该方法能够生成高质量的图像数据并且做到了高层特征可控,v1的主要工作在于设计了一个style-based生成器,其中...  理解style-based生成器的设计需要以下几个.
  • 【20190321】电影周周看V1

    千次阅读 2019-03-18 07:27:10
    Learing by doing (做中学),一个人项目需求和问题出发,引出技术和知识点。 其实技术学习中的师生关系更像是 健身教练 与 健身学员 的关系,教练有一定经验,但是要努力练出肌肉,必须靠学员自己的努力。 ...
  • Inception v1 Inception v2 Inception v3 Inception v4 简介 GoogLeNet网络核心模块是Inception module,一共经历了4代,其中第一代网络获得了2014年ILSVRC竞赛的分类任务第一名,因此促使了研究者对Inception...
  • 示波器MDO3104操作规程
  • 图的遍历 之 深搜dfs

    2019-10-06 17:14:44
    从v1 出发,访问与v1 邻接但还没有访问过的顶点v2;然后再v2 出发,进行类似的访问;…;如此进行下去,直至到达所有邻接顶点都被访问过的某个顶点x 为止;接着,回退一步,回退到前一次刚访问过的顶点,看是否...
  • 动态规划求解TSP(旅行商)问题

    万次阅读 多人点赞 2012-11-28 20:29:40
    某推销员要城市v1出发,访问其它城市v2,v3,…,v6各一次且仅一次,最后返回v1。D为各城市间的距离矩阵。问:该推销员应如何选择路线,才能使总的行程最短?   1、变量设定 阶段k:已遍历过k个结点,k=1,...
  • 我们从v1出发,v11为终点。要如何走才能使路程最短? dijstra算法简介与例子计算 首先先写出各点距离v1的距离,然后走最短距离的那个点。 第二步走到v4,得到v1到v3、v7的距离,比较后决定第二步走v2,得到v1到...
  • 对于树的最远两节点的距离的理解

    千次阅读 2015-04-25 17:16:22
    定义:n个节点的树,任选一个节点V0,找到距离它最远的节点V1,再找距离V1最远的节点V2,edge(V1,V2) 即为树的...因此,再从V1出发,找距离V1最远的节点V2,必定通过root,所以可以看成是找距离root最远的节点V2(不能回头搜索V1
  • (1)在图的任意顶点出发(假设从V1出发),首先访问V1 (2)在刚访问过的顶点(V1)的相邻顶点中,找出第一个未被访问的顶点(V2),并访问该顶点(V2) (3)以V2为新顶点,递归重复(1)(2)步骤。 每当找不到未...
  • DFS求图中两点的所有的路径

    万次阅读 多人点赞 2018-01-12 15:25:42
    用DFS算法来求图中两点的所有的路径,在给出代码前,先给大家讲解清楚该算法的原理。  DFS本来被用作图的遍历,现在我们对它进行改造...1.从v1出发,将v1标记,并将其入栈。 2.找到v0,将其标记,将其入栈。 3.找到
  • 从V1出发,假设经过的路线为V1,V2,....VK,V1,那么必须满足K>2, 即除了出发点以外至少要经过2个其他不同的景区,而且不能重复经过同一个景区。 现在8600需要你帮他找一条这样的路线,并且花费越少越好。 能...
  • 睿智的目标检测39——Pytorch 利用mobilenet系列(v1,v2,v3)搭建yolov4目标检测平台学习前言源码下载网络替换实现思路1、mobilenet系列网络介绍a、mobilenetV1介绍b、mobilenetV2介绍c、mobilenetV3介绍2、将预测...
  • 目标检测之YOLO系列-V1至V3改进详解

    千次阅读 2018-09-29 21:32:40
    具体做法是:对于bounding box集合B及其置信度S,选择最大置信度的bounding box M,将其B集合剔除,并加入最终的检测结果D中,然后再将B中剩余bounding box与M的IoU大于阈值的bounding boxB中剔除,重复此过程,...
  • dfs 算法的使用

    千次阅读 2014-04-01 15:12:02
    算法思想,dfs算法是一个递归的过程,有回退的过程,对于一个无向连通图,访问图中某个顶点v0后,然后访问它的某一个邻接顶点v1,然后再从v1出发,访问v1的违访问过的邻接顶点,如此下去,直至到达所有的领接顶点都...
  • 睿智的目标检测38——Keras 利用mobilenet系列(v1,v2,v3)搭建yolo3目标检测平台学习前言源码下载网络替换实现思路1、mobilenet系列网络介绍a、mobilenetV1介绍b、mobilenetV2介绍c、mobilenetV3介绍2、将预测结果...
  • 边上权值非负情形的单源最短路径问题 Dijkstra算法的应用场景:给定一个带权有向图D与源点v,求v到...②集合T是已求得最短路径的终点的集合,则可证明:下一条最短路径必然是从v1出发,中间只经过T中的顶点便可到达
  • 图的遍历:BFS和DFS

    2015-03-10 15:37:40
     深度优先遍历的基本思想是访问顶点V0,然后访问V0邻接到的未被访问的顶点V1,再从V1出发递归地按照深度优先的方式遍历。当遇到一个所有邻接于它的顶点都被访问过了的顶点u时,则回到自己访问顶点序列中最后一个...
  • dfs算法的使用

    千次阅读 2014-02-26 22:15:31
    算法思想,dfs算法是一个递归的过程,有回退的过程,对于一个无向连通图,访问图中某个顶点v0后,然后访问它的某一个邻接顶点v1,然后再从v1出发,访问v1的违访问过的邻接顶点,如此下去,直至到达所有的领接顶点都...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,780
精华内容 5,512
关键字:

从v1出发