semanticaxure折叠菜单单 怎么用

1949人阅读
Long, Jonathan, Evan Shelhamer, and Trevor Darrell. “Fully convolutional networks for semantic segmentation.” Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2015.
本文是深度学习应用于图像分割的代表作,作为Oral发表于CVPR 2015,在许多教程中都被推荐(例如Li Feifei在Standford的)。第二作者Evan Shelhamer也是Caffe的首席开发者。
本文在图像分割问题中应用了当下CNN的几种最新思潮,在PASCAL VOC分割任务上IU(交比并)达到62.2%,速度达到5fps。提供了基于Caffe的。
辨:两种分割任务
semantic segmentation - 只标记语义。下图中。
instance segmentation - 标记实例和语义。下图右。
本文研究第一种:语义分割
本文包含了当下CNN的三个思潮
- 不含全连接层(fc)的全卷积(fully conv)网络。可适应任意尺寸输入。
- 增大数据尺寸的反卷积(deconv)层。能够输出精细的结果。
- 结合不同深度层结果的跳级(skip)结构。同时确保鲁棒性和精确性。
网络结构如下。输入可为任意尺寸图像彩色图像;输出与输入尺寸相同,深度为:20类目标+背景=21。
全卷积-提取特征
虚线上半部分为全卷积网络。(蓝:卷积,绿:max pooling)。对于不同尺寸的输入图像,各层数据的尺寸(height,width)相应变化,深度(channel)不变。
这部分由深度学习分类问题中经典网络AlexNet修改而来。只不过,把最后两个全连接层(fc)改成了卷积层。
论文中,达到最高精度的分类网络是VGG16,但提供的模型基于AlexNet。此处使用AlexNet便于绘图。
逐像素预测
虚线下半部分中,分别从卷积网络的不同阶段,以卷积层(蓝色×3)预测深度为21的分类结果。
例:第一个预测模块
输入16*16*4096,卷积模板尺寸1*1,输出16*16*21。
相当于对每个像素施加一个全连接层,从4096维特征,预测21类结果。
反卷积-升采样
下半部分,反卷积层(橙色×3)可以把输入数据尺寸放大。和卷积层一样,升采样的具体参数经过训练确定。
例:反卷积
输入:每个像素值等于filter的权重
输出:步长为stride,截取的宽度为pad。
下半部分,使用逐数据相加(黄色×2),把三个不同深度的预测结果进行融合:较浅的结果更为精细,较深的结果更为鲁棒。
在融合之前,使用裁剪层(灰色×2)统一两者大小。最后裁剪成和输入相同尺寸输出。
训练过程分为四个阶段,也体现了作者的设计思路,值得研究。
以经典的分类网络为初始化。最后两级是全连接(红色),参数弃去不用。
从特征小图(16*16*4096)预测分割小图(16*16*21),之后直接升采样为大图。
反卷积(橙色)的步长为32,这个网络称为FCN-32s。
这一阶段使用单GPU训练约需3天。
升采样分为两次完成(橙色×2)。
在第二次升采样前,把第4个pooling层(绿色)的预测结果(蓝色)融合进来。使用跳级结构提升精确性。
第二次反卷积步长为16,这个网络称为FCN-16s。
这一阶段使用单GPU训练约需1天。
升采样分为三次完成(橙色×3)。
进一步融合了第3个pooling层的预测结果。
第三次反卷积步长为8,记为FCN-8s。
这一阶段使用单GPU训练约需1天。
较浅层的预测结果包含了更多细节信息。比较2,3,4阶段可以看出,跳级结构利用浅层信息辅助逐步升采样,有更精细的结果。
minibatch:20张图片
learning rate:0.001
分类网络之外的卷积层参数初始化为0。
反卷积参数初始化为bilinear插值。最后一层反卷积固定位bilinear插值不做学习。
总体来说,本文的逻辑如下:
- 想要精确预测每个像素的分割结果
- 必须经历从大到小,再从小到大的两个过程
- 在升采样过程中,分阶段增大比一步到位效果更好
- 在升采样的每个阶段,使用降采样对应层的特征进行辅助
类似思想在后续许多论文中都有应用,例如用于姿态分析的。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:72224次
积分:1379
积分:1379
排名:千里之外
原创:43篇
评论:101条
(2)(1)(5)(1)(4)(3)(4)(4)(3)(5)(3)(2)(7)(1)CSS | Amaze UI
CSS浏览器默认样式统一,基础样式,网格,表格、表单、按钮及常用组件样式。 目录CSS CSS 概述 Amaze UI CSS 大致分为四部分。基础(默认)样式使用 normalize.css 统一浏览器差异, 以及一些基础的元素样式。布局样式包含用于布局的 Grid、AVG Grid,以及一些辅助 Class。元素样式对 code、form、table 等 HTML 元素定义更多的样式。页面组件定义网页中常用的、多个元素组合在一起的组件样式,如分页、面包屑导航等。浏览器前缀 Amaze UI 2.0 开始移除了所有标准属性的浏览器前缀,构建时通过
自动添加。当前的 AutoPrefixer 浏览器支持设置为:[
'ie &= 8',
'ie_mob &= 10',
'ff &= 30',
'chrome &= 34',
'safari &= 7',
'opera &= 23',
'ios &= 7',
'android &= 2.3',
'bb &= 10'
]响应式断点 尺寸class 简写断点区间描述smallsm0 - 640px处理绝大数手机的横竖屏模式()mediummd641px - 1024px平板的横竖屏模式largelg1025px +桌面设备目前 Amaze UI 对大于 1025px 的屏幕并没有做划分,虽然现在大屏显示器越来越多,但是设计一个过宽的网页对用户来说并不友好,用户眼睛左右移动的区间太大,浏览起来比较累。当然,一些特殊类型(购物、视频等)的网站例外。LESS 变量中定义了一些 Media Query 变量,使用 LESS 的用户可以引入该文件,直接使用这些变量。@screen:
~"only screen";
@landscape:
~"@{screen} and (orientation: landscape)";
@portrait:
~"@{screen} and (orientation: portrait)";
@small-up:
~"@{screen}";
@small-only:
~"@{screen} and (max-width: @{breakpoint-small-max})";
@medium-up:
~"@{screen} and (min-width:@{breakpoint-medium-min})";
@medium-only:
~"@{screen} and (min-width:@{breakpoint-medium-min}) and (max-width:@{breakpoint-medium-max})";
@large-up:
~"@{screen} and (min-width:@{breakpoint-large-min})";
@large-only:
~"@{screen} and (min-width:@{breakpoint-large-min}) and (max-width:@{breakpoint-large-max})";使用 HTML5 Amaze UI 在 HTML5 下开发,没有测试其他 DOCTYPE,使用之前确保你的 HTML 第一行是 &!doctype html&。建议使用的 HTML head:&!doctype html&
class="no-js"&
charset="utf-8"&
http-equiv="X-UA-Compatible" content="IE=edge"&
name="description" content=""&
name="keywords" content=""&
name="viewport"
content="width=device-width, initial-scale=1"&
&Amaze UI Examples&
name="renderer" content="webkit"&
http-equiv="Cache-Control" content="no-siteapp"/&
rel="icon" type="image/png" href="{{assets}}i/favicon.png"&
name="mobile-web-app-capable" content="yes"&
rel="icon" sizes="192x192" href="{{assets}}i/app-icon72x72@2x.png"&
name="apple-mobile-web-app-capable" content="yes"&
name="apple-mobile-web-app-status-bar-style" content="black"&
name="apple-mobile-web-app-title" content="Amaze UI"/&
rel="apple-touch-icon-precomposed" href="assets/i/app-icon72x72@2x.png"&
name="msapplication-TileImage" content="assets/i/app-icon72x72@2x.png"&
name="msapplication-TileColor" content="#0e90d2"&
rel="stylesheet" href="assets/css/amazeui.min.css"&
rel="stylesheet" href="assets/css/app.css"&
src="assets/js/jquery.min.js"&&
src="assets/js/amazeui.min.js"&&
&参考链接:移动优先 Amaze UI 以移动优先的理念开发,需要在 meta 中设置相关 viewport 属性。width=device-width, initial-scale=1 是必须的,而且我们认为好的设计是不需要用户去操作窗口缩放的,所以加上了 maximum-scale=1, user-scalable=no。 name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"&国情国情 不可否认,这是一个神奇的国度,一切合理与不合理都可以用国情来解释。前端开发也不例外。渲染引擎 国内不少 X 核 浏览器,对于前端开发者,他们更多时候可能充当了 Troublemaker 的角色,不过也会有让人眼前一亮的一刻。 name="renderer" content="webkit"&这行代码可以指定网页使用 webkit 引擎渲染,当然,只对 。就这点而言,我希望所有所有的小白都去用 360 浏览器,那该有多好...防(zhēn)狼(cāo)术(dài) 如果你的网站不想被剥去外衣、往赤裸的身体上贴广告,就加上。 http-equiv="Cache-Control" content="no-siteapp" /&Class 命名说明 关注分离 Amaze UI CSS class 命名遵循关注分离、松耦合的原则,同时注重易于理解、理解,在参考
的基础上,采用更优雅的书写方式。下面的代码直观展示了 Amaze UI CSS class 命名规范。.am-post
.am-post-title
.am-post-meta
.am-post-sticky
.am-post-active
.am-post-title-highlight {}
关注分离示例
class="am-post"&
class="am-post-title"&&
class="am-post-meta"&&
class="am-post-content"&
&上面的代码中,可以直接使用下面的样式控制元素:.am-post & h2 {
.am-post & p {
}乍看是没什么问题,这两个选择符也不会影响到 &main& 里面的元素,但是如果更改了 HTML 标签, 就必须同时修改 CSS 选择符,无疑加大了维护的工作量。所以,给相应元素加上 class 是关注分离一个不错的选择。 class="am-post"&
class="am-post-title"&&
class="am-post-meta"&&
class="am-post-content"&
&关注分离反模式
class="am-nav"&
class="am-nav-item"&&
class="am-nav-item"&&
class="am-nav-item"&&
&上面是一个导航代码片段,我们给 &li& 都加上了 .am-nav-item class,表面是遵循关注分离,其实是一种反模式,因为 &ul& 里面肯定是要放 &li& 的,在没有其它更复杂的元素在里面的情况下,给 &li& 加 class 显然是多余的。所以, 关注分离并不是简单地给每个元素都加上 class,还需结合实际情况区别对待。相关阅读:“多类症”(Classitis) 当 HTML 源代码满眼望去都是 class 时,是不是很抓狂?不过为了实现代码复用,减少重复冗余,难免要把代码拆分在不同的 class 下面。我们只能寻找一个平衡点,避免过细的拆分,减少不必要的 class。选择符书写 虽然使用 LESS 编写样式可以很方便的嵌套,但是我们不建议过度嵌套选择符,有些嵌套是没有必要的。同时,我们也不建议把多个选择器堆叠在一起。.ui.form .fields.error .field .ui.selection.dropdown .menu .item:hover {
}看看上面来自
的选择符,威武霸气吧,整行都是选择符,class 加 class,n 层嵌套,我只想呵呵...选择符嵌套在必要的情况下一般不超过三层;选择符叠加一般不多于两个。一点禁忌 我们崇尚自由,但并不是百无禁忌。Amaze UI 中有两个表示状态的 class:.am-active - 激活.am-disabled - 禁用不要单独使用、直接在里面编写样式!!!/* 可以嵌套用 */
.am-nav .am-active {
/* 可以堆叠用 */
.am-btn.am-active {
/* 绝不要单独用!!! */
.am-active {
/* 当然,如果你想给自己找点乐,那就随便了 */禁用响应式 不喜欢响应式?可以尝试禁用:删除 head 里的视口设置 meta 标签;固定容器 .am-container 宽度(可以自己添加一个 class,不一定要使用内置的):.am-container {
width: 980px !important;
max-width:
}使用网格系统时,只添加 .am-u-sm-* class,移除其他断点的 class。至此,布局层的响应式被禁用了()。不过,这仅仅是个开始,一些组件的样式细节可能还需要调整,只能陪你到这了……关于命名空间 似乎有些人看着 .am 有些不顺眼,在这里专门做一下说明。可能有人不知道命名空间是什么东西,和
中的 yui、 中的 pure 一样,Amaze UI 里的 am 就是命名空间。命名空间使类名变得冗长,可为什么还要加呢?目的:防御与无侵入! 更直白的话说,我不犯人,也不让人犯我。CSS 多基于 Class 应用样式,我们不愿看到:多个框架共存时,按照我们的 CSS 编写的 HTML 结构应用了其他框架的样式;从第三方抓取的 HTML 存在 class 相同的元素,意外地应用了 Amaze UI 的样式;用户编写自己的代码时,意外的覆盖了框架中的样式;多人协作开发时,发生命名冲突,样式相互影响;__第三方服务(如分享按钮、评论组件)会向页面中插入一些样式,可能会意外的应用到我们编写的结构;……Amaze UI 内部在用,平台上的开发者也在用,命名空间能够有效地减少这些问题。仅限于此,与品牌宣传什么的扯不上关系。何去何从? 命名空间会被删除吗?一般不会,不过也说不定,不过那也是很久很久以后的事。我真的不喜欢命名空间这个东西,怎么办?未来版本会尝试自定义命名空间的可能性。你也可以尝试自己在编译的过程中把命名空间去掉,前端编译工具那么多,何不试试?不然葱油拌?还是飘香拌?妹子只能说这么多了,再往下就只能说:你不懂我,我不怪你。在微信上关注我们5889人阅读
emacs(23)
一直以为配置semantic都不成功,昨天参考了smth一个人的配置文件,终于成功了。
安装ecb的时候已经安装好semantic了,然后只需要在.emacs文件中加入以下三行就可以了。
(require 'cedet)
(semantic-load-enable-code-helpers)
(global-set-key [(control tab)] 'semantic-ia-complete-symbol-menu)
之后用emacs随便打开一个c/c++文件,就可以在时而用ctrl+tab弹出自动补全的提示菜单了。semantic会parse当前所有include的文件,然后进行智能提示。
这个配置太简单了,下面用一个稍稍复杂点的配置文件说说它的配置过程:
(require 'cedet)
;; Enabling Semantic (code-parsing, smart completion) feature, Select one of the following:
;; (semantic-load-enable-minimum-features)
(semantic-load-enable-code-helpers)
;; (semantic-load-enable-guady-code-helpers)
;; (semantic-load-enable-excessive-code-helpers)
;; (semantic-load-enable-semantic-debugging-helpers)
;; (global-set-key [(control tab)] 'senator-complete-symbol);
;; (global-set-key [(control tab)] 'senator-completion-menu-popup) ;; use C-c , SPC instead
;; (global-set-key [(control tab)] 'semantic-ia-complete-symbol)
(global-set-key [(control tab)] 'semantic-ia-complete-symbol-menu)
;; 配置Semantic的检索范围:
;; (setq semanticdb-project-roots
(expand-file-name "/")))
;; 设置semantic cache临时文件的路径,避免到处都是临时文件
;; (setq semanticdb-default-save-directory "~/.emacs.d/")
;; C/C++语言启动时自动加载semantic对/usr/include的索引数据库
;; (setq semanticdb-search-system-databases t)
;; (add-hook 'c-mode-common-hook
(lambda ()
(setq semanticdb-project-system-databases
(list (semanticdb-create-database
semanticdb-new-database-class
"/usr/include")))))
(require 'cedet)当然是用来加载cedet扩展的,cedet里包含了semantic和一些其它扩展
semantic-load-enable-code-helpers用来设置semantic分析文件的程度,一共有5级,从上到下越来越复杂。 semantic-load-enable-minimum-features是最低要求;semantic-load-enable-code- helpers稍复杂一点,主要是加了一个imenu菜单(不过这个菜单在windows和mac上都显示不出来);semantic-load- enable-guady-code-helpers加入了一些用处不大的功能,比如在第一行显示当前的函数等(这个命令已经不建议使用了);semantic-load-enable-excessive-code-helpers加了在mode line显示当前函数名的功能,也没多大用;semantic-load-enable-semantic-debugging-helpers用于调试 semantic本身。所以一般我们用semantic-load-enable-code-helpers就可以了。
(global-set-key [(control tab)] 'semantic-ia-complete-symbol-menu)用来设置快捷键。因为semantic没有设置默认的热键,所以我把它绑定到 ctrl+tab上去。这儿有4种补全选择:senator-complete-symbol是调用senator的分析结果直接补全,不弹出菜单;senator-completion-menu-popup也是调用senator,不过会弹一个选择菜单;semantic-ia- complete-symbol是调用semantic的分析结果智能补全,不弹出菜单;semantic-ia-complete-symbol- menu也是调用semantic的结果,不过会弹出一个选择菜单。因为semantic的分析结果更智能,所以一般都用semantic-ia- complete-symbol-menu。
用semanticdb-project-roots来配置semantic的检索范围,最简单的方式在linux下直接配置为/根目录。不过我发现不配置它也可以用,可能semantic默认设置为/了。
(setq semanticdb-default-save-directory "~/.emacs.d/")设置cache文件的保存位置,不设的话默认是在被分析文件的目录下,每个目录一个。
最后一段让semantic自动加载对c/c++标准库的parse结果,不过我试用的结果效果不很理想。
所以我一般只用最前面那三句就能让semantic很好工作了。
我是个懒人,不喜欢往.emacs里写东西,所以前面那三行也可以不写在.emacs里,而在emacs启动完之后,依次运行以下命令也有同样的效果:
load-library &RET& cedet
semantic-load-enable-code-helpers
global-set-key &RET& &control tab& semantic-ia-complete-symbol-menu
1. semantic-ia-fast-jump(好像是从cedet1.0pre5才加入的)可以实现类似vs中f12的功能,跳转到光标所在的地方的符号的定义,我把它绑定到f12上了。
2.cedet-contrib里有个eassist.el,可以很方便地在c++的h/cpp文件间切换,具体命令是eassist-switch-h-cpp,可以把它绑定到某个键上(我用的f11)。
3.semantic默认只搜索当前路径,好像还有系统路径/usr/include。对于windows,可以用下面命令:
(semantic-add-system-include "C:/MinGW/include/c++/3.4.5" 'c++-mode)
(semantic-add-system-include "C:/Program Files/Microsoft Visual Studio 9.0/VC/atlmfc/include" 'c++-mode)
把mingw或者vc的头文件路径加进去,这样,就可以用semantic对mfc类进行补全了。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:177928次
积分:2785
积分:2785
排名:第9609名
原创:102篇
评论:21条
(1)(1)(1)(3)(2)(94)

我要回帖

更多关于 bootstrap 折叠菜单 的文章

 

随机推荐