论文阅读 | CVPR2017(Best Paper) | Densely Connected Convolutional Networks

论文阅读 | CVPR2017(Best Paper) | Densely Connected Convolutional Networks,第1张

作为一个开发/测试人员,或多或少都得和数据库打交道,而对数据库的 *** 作归根到底都是SQL语句,所有 *** 作到最后都是 *** 作数据,那么对sql性能的掌控又成了我们工作中一件非常重要的工作。下面简单介绍下一些查看oracle性能的一些实用方法:

1、查询每台机器的连接数

select tMACHINE,count() from v$session t group by tMACHINE

这里所说的每台机器是指每个连接oracle数据库的服务器,每个服务器都有配置连接数据库的连接数,以websphere为例,在数据源中,每个数据源都有配置其最大/最小连接数。

执行SQL后,可以看到每个服务器连接oracle数据库的连接数,若某个服务器的连接数非常大,或者已经达到其最大连接数,那么这台服务器上的应用可能有问题导致其连接不能正常释放。

2、查询每个连接数的sql_text

v$session表里存在的连接不是一直都在执行 *** 作,如果sql_hash_value为空或者0,则该连接是空闲的,可以查询哪些连接非空闲, web3 是机器名,就是WebSphere Application Server 的主机名。

select tsql_hash_value,t  from v$session t where tMACHINE='web3' and tsql_hash_value!=0

这个SQL查询出来的结果不能看到具体的SQL语句,需要看具体SQL语句的执行下面的方法。

3、查询每个活动的连接执行什么sql

select sid,username,sql_hash_value,bsql_text

from v$session a,v$sqltext b

where asql_hash_value = bHASH_VALUE and aMACHINE='web3'

order by sid,username,sql_hash_value,bpiece

order by这句话的作用在于,sql_text每条记录不是保存一个完整的sql,需要以sql_hash_value为关键id,以piece排序,如图

Username是执行SQL的数据库用户名,一个sql_hash_value下的SQL_TEXT组合成一个完整的SQL语句。这样就可以看到一个连接执行了哪些SQL。

4、从V$SQLAREA中查询最占用资源的查询

select busername username,adisk_reads reads, aexecutions exec,

adisk_reads/decode(aexecutions,0,1,aexecutions) rds_exec_ratio,

asql_text Statement

from  v$sqlarea a,dba_users b

where aparsing_user_id=buser_id

and adisk_reads > 100000

order by adisk_reads desc;

用buffer_gets列来替换disk_reads列可以得到占用最多内存的sql语句的相关信息。

V$SQL是内存共享SQL区域中已经解析的SQL语句。

该表在SQL性能查看 *** 作中用的比较频繁的一张表,关于这个表的详细信息大家可以去>

1、列出使用频率最高的5个查询:

select sql_text,executions

from (select sql_text,executions,

rank() over

(order by executions desc) exec_rank

from v$sql)

where exec_rank <=5;

该查询结果列出的是执行最频繁的5个SQL语句。对于这种实用非常频繁的SQL语句,我们需要对其进行持续的优化以达到最佳执行性能。

2、找出需要大量缓冲读取(逻辑读) *** 作的查询:

select buffer_gets,sql_text

from (select sql_text,buffer_gets,

dense_rank() over

(order by buffer_gets desc) buffer_gets_rank

from v$sql)

where buffer_gets_rank<=5;

这种需要大量缓冲读取(逻辑读) *** 作的SQL基本是大数据量且逻辑复杂的查询中会遇到,对于这样的大数据量查询SQL语句更加需要持续的关注,并进行优化。

3、持续跟踪有性能影响的SQL。

SELECT  FROM (

SELECT PARSING_USER_ID,EXECUTIONS,SORTS,

COMMAND_TYPE,DISK_READS,sql_text FROM v$sqlarea

ORDER BY disk_reads DESC

)

WHERE ROWNUM<10

这个语句在SQL性能查看中用的比较多,可以明显的看出哪些SQL会影响到数据库性能。

本文主要介绍了使用SQL查询方式查看oracle数据库SQL性能的部分常用方法。此外还有许多工具也能实现SQL性能监控,大家可以在网上搜索相关知识进行学习。

转载仅供参考,版权属于原作者

  作为近两年detector和descriptor joint learning(也称one-stage)类型论文的又一代表,D2-Net是一种相当特别的结构。其特点是“一图两用”,即网络预测出的dense tensor即是detection score maps,又是description map特征图即代表特征检测结果又代表特征描述结果(注意预测的特征图并不是原图分辨率大小)。换句话说,D2-Net的特征检测模块和描述模块是高度耦合的。

  本文主要针对的是appearance变化较大(包括日-夜变化、大的视角变化等)场景下的图像匹配任务。文章作者比较了两种局部特征学习方法:sparse方法和dense方法。其中sparse方法高效,但是在appearance变化大的场景提取不到可重复的关键点,其原因在于特征提取器只使用浅层图像信息,不使用语义信息;dense方法则直接利用深层特征提取密集特征描述,更加鲁棒却以更高的匹配时间和内存开销为代价。

  因此作者的目的在于,提出一种足够鲁棒的sparse local feature,让其提取的特征(兴趣点)具有更好的repeatability,进而实现既有sparse方法的高效性,又有dense方法的鲁棒性。其核心idea是将特征提取阶段延后,使得局部特征也可以利用高层语义信息,而不是只考虑低层信息。

问题:关于这里的sparse和dense方法

关键词:A single CNN plays a dual role; joint optimization; different train/test model structure

  不同于SuperPoint或者SEKD,本文虽然也是dense prediction类型的结构,但并不同时预测kpt和description两个图,而是只预测了一个形状为HxWxd(d为特征描述的长度)的特征图,然后既作描述结果又作检测结果…从spatial维度来说,该特征图的每个像素位置是一个描述子;从channel维度来说,每一个通道代表一个特征检测器的检测结果,总共得到d个2D响应图,这里可以用SIFT中的高斯差分金字塔响应来类比。

  后续的兴趣点提取需要对这个d通道的特征图做进一步的后处理:

  按照上面对D2特征图的定义,如果(i,j)位置是一个兴趣点,则从通道维度来说该像素位置最终的检测结果肯定要取检测器响应值最大的通道对应数值,这样就选出了通道;从空间维度来说又要满足该位置在该通道的2D map必须为一个局部最大值。即本文中的"hard feature detection":

  首先对输入图像构建图像金字塔,然后在每个scale上进行forward,得到D2特征图,再把多尺度特征图逐scale上采样并与同分辨率融合(见下式),得到融合后的特征图。预测阶段根据融合特征图进行上述后处理,即可提取出特征点。

  由于上述特点,网络结构本身发非常简单,直接用VGG16 conv4_3之前的部分,恢复ImageNet上的预训练权重,然后除了最后一层conv4_3之外全部冻结,只对该层做微调。不过关于模型,有两个值得注意的地方:

  1使用VGG16的结果比ReseNet好很多
  2训练时和测试时的模型结构不同
  具体来说,在测试阶段为了提高特征的分辨率,将pool3改成一个stride为1的avg pool,随后的三层conv dilation ratio调整为2,以维持相同的感受野。作者解释是说训练时为了减小内存使用比较小的特征分辨率,测试时为了提高特征定位能力,将分辨率提升到原图的1/4,并加上了一个类似SIFT中使用的局部特征提炼,然后将特征插值上采样到原分辨率。

  不过训练过程不能用上面的hard feature detection,因为其不可微。故作者提出了一个soft的版本,其设计思想就是模仿hard方法的通道选择和空间位置选择(即通道内的局部最大值):

  对于空间位置选择,作者会对特征图的每个像素求一个α(i,j),得到α map(shape为[h,w,d]):

  其中N(i,j)代表以(i,j)为中心的9-邻域。因此可见这里的局部最大值其实是在3x3区域内的最大值,而不是式(3)中写的那样,整个通道只输出一个最大值。

  对于通道选择,直接计算一个ratio-to-max得到β图(shape为[h,w,d]):

  根据kpt的定义,score map s就应该是α map和β map的乘积map在通道维度求最大值的结果。最后再做一个归一化:(问题:这个归一化让score map的像素值之和为1是什么意思?score map不应该用sigmoid之类的转为0-1之间的分布比较合理吗?)

  关于这部分还要考虑一个问题,为什么D2-Net需要在训练中提取兴趣点?(比如R2D2等结构,都是直接针对kpt score map做优化,只有实际预测时才需要根据score map提取特征点这个步骤)

  答:这个问题的理解是不正确的,训练中并不是提取兴趣点,而是在得到”single score map"。上面的hard feature detection相当于NMS的过程,输出的是稀疏的兴趣点位置坐标;而训练检测模块需要hxw的score map,故先要把hxwxd的特征图经过一个可微的步骤,处理后得到该score map。

①triplet margin ranking loss(只考虑描述子)

  训练描述子其实没有太多不一样的地方,就是根据输入pair的correspondences,将每一个匹配对c视为正对,不匹配对为负对,对构成的三元组进行训练。主要问题是如何根据当前匹配对c构建最有意义的负对。作者这里用了一个基于邻域的困难样本挖掘策略,假如当前匹配为下图的点A和点B,那么分别在I1和I2扣去A\B邻域的区域找负对,并分别与B的描述子dB、A的描述子dA进行比较,找到所有这种负对中相似度最小的,与c构建三元组。

  以下p(c)和n(c)分别代表正对距离和负对距离。m(c)代表当前匹配c的triplet loss。

②加入描述子优化的triplet margin ranking loss

  由于D2特征即代表兴趣点score map也代表描述子,本文的优化需要对检测和描述进行联合优化。作者在triplet margin ranking loss基础上加入了提升检测结果可重复性这一优化目标,具体实现方法是:利用输入两图像中所有correspondences的检测得分来对当前匹配计算出的triplet loss进行加权平均,如果当前匹配triplet loss很低(即该对匹配的距离远小于其各自的最难负对),则为了最小化loss,这一对triplet loss小(即区分度高)的correspondence自然要给更大的权值;其他triplet loss大的correspondence就给小点的权值。

  感觉文中式(13)的符号有点confusing,m(p(c),n(c))直接写成,m(c)可能更加简洁。

首先组播路由器在运行PIM时,可以运行在SM模式下,也可以运行在DM模式下,当运行在SM模式下 时,必须有RP,否则网络不通,而运行DM时,不需要RP组播就能通信。但PIM路由器可以同时运行两种模式,即sparse-dense-mode,当同时运行这两种模式时,如果一个组有RP时,则使用共享树,但是当RP失效时,则可以使用最短路径树来保证组播的通信。在华三估计是开启pim吧,我只学过cisco,没学过h3c,估计就是开启pim功能。
CGMP:思科组管理协议 (CGMP:Cisco Group Management Protocol
CGMP 结合 IGMP 信息共同实现动态分配 Cisco Catalyst 交换机端口过程,从而 IP 组播流量只被转发给与 IP 组播客户机相连的那些端口。由于 CGMP-Capable IP 组播路由器看到所有 IGMP 数据包,因此它可以通知交换机特定主机什么时候加入或离开 IP 组播组。当 CGMP-Capable 路由器接收一个 IGMP 控制数据包时,它会创建一个包含请求类型(加入或离开)、组播组地址和主机有效 MAC 地址等的 CGMP 数据包。然后路由器将 CGMP 数据包发送到所有 Catalyst 交换机都知道的地址上。当交换机接收 CGMP 数据包时,交换机负责转换数据包同时更改组播组的转发行为。至此,该组播流量只被发送到与适当 IP 组播客户机相连的那些端口。该过程是自动实现的,无需用户参与


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13440328.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-06
下一篇 2023-08-06

发表评论

登录后才能评论

评论列表(0条)

保存