主页

[paper] YOLO9000: Better, Faster, Stronger

背景 yolo v1的出现提供了一个one stage的算法,同年没多久就被SSD等在准确率和速度上欺负。时隔一年多,作者基于时代的进步,加入了多个先进的工作,使用多个trick取长补短优化模型。 效果 1.优化yolo模型。 2.预测超9000类别。 『官方实验』 非常理想的在各方面远超其它模型。 网络 『网络结构』 思路 yolo v1主要的缺点: 与Fast R-CNN做误差分析,yolo v1有大量的定位误差。 与region proposal方式比,yolo v1的recall比较低。 『10个trick』 1.batch norm? 2.4% mAP ↑ 用于解决internal covariate shift问...

阅读更多

[mybatis] 脏数据

脏数据的产生原因 产生原因? 修改数据没有更新。 Mybatis的二级缓存是和命名空间绑定的,所以通常情况下每一个Mapper映射文件都拥有自己的二级缓存,不同的二级缓存互不影响。 但在常见的数据库操作中,多表联合查询非常常见,由于关系型数据库的设计,使得很多时候需要关联多个表才能获得想要的数据。在关联多表查询时肯定会将该查询放到某个命名空间下的映射文件中,这样一个多表的查询就会缓存在该命名空间的二级缓存中欧给你。 涉及这些表的增、删、改的操作通常不在一个映射文件中,他们的命名空间不同,因此当有数据变化时,多表查询的缓存未必会被清空,就产生了脏数据。 如何避免? 为了读写安全,如果有对数据进行改写,应更新数据,更新后会清空一...

阅读更多

[mybatis] 缓存

一级缓存 一级缓存(也称为本地缓存)默认会启用,且不能被控制。 何时缓存 一级缓存如何起作用? Mybatis的一级缓存存在于SqlSession的生命周期中,在同一个SqlSession中查询时,Mybatis会把执行的方法和参数通过算法生成缓存的键值,将键值和查询结果存入一个Map对象中。 如果同一个SqlSession中执行的方法和参数完全一致,那么通过算法会生成相同的键值,当Map缓存对象中已存在该键值时,则会返回缓存中的对象。 可以通过在<select>属性中设置flushCache="true",每次查询都会清空当前的一级缓存,每次都会重新从数据库中查询数据。 何时更新缓存 任何的INSERT、UPDATE、DELETE操作都会清空一级缓...

阅读更多

[mybatis] 延迟加载

延迟加载 当使用<association>进行嵌套查询时,如一个查询里嵌套着另一个表的查询。 默认情况下,会完整加载。即使那个表没有使用到,仍然会被查询。 可以通过<association>的属性fetchType="lazy",和将Mybatis的全局配置为aggressiveLazyLoading=false时,才会将按需加载。 如果,配置了aggressiveLazyLoading=false,而又需要在触发某些方法时,加载数据。 Mybatis提供了参数lazyLoadTriggerMethods,默认值为equals(),clone(),hashCode(),toString()。可以通过调用其中的一个方法实现加载调用对象的数据。 例如:...

阅读更多

[mybatis] Mapper接口动态代理实现

动态代理实现 为什么Mapper接口没有实现类,却能被正常调用呢? 因为MyBatis在Mapper接口上使用了动态代理的一种非常规的用法。 代理类中,当调用一个接口的方法时,会先通过接口的全限定名称和当前调用的方法名的组合得到一个方法id,这个id的值就是映射XML中的namespace和具体方法id的组合。所以可以在代理方法中使用sqlSession以命名空间的方式调用方法。通过这种方式可以将接口和XML文件中的方法关联起来。 这种代理方式和常规代理的不同之处在于,没有对某个具体类进行代理,而是通过代理转化成了对其它代码的调用。

阅读更多

[InnoDB 学习1] 体系架构

MySQL体系结构 Management Service & Utillties 管理服务和工具组件 Connection Pool 连接池 SQL Interface SQL接口 Parser Quary Translation 查询分析器 Optimizer 优化器 Caches & Buffers 缓冲 Pluggable Storage Engines 插件式存储引擎 MyISAM InnoDB NDB ...

阅读更多

[InnoDB 学习1-8] 自适应哈希索引

自适应哈希索引(Adaptive Hash Index) B+树的查找次数,取决于B+树的高度,在生产环境中,B+树的高度一般为3~4层,故需要3~4次的查询。 InnoDB存储引擎会监控对表上各索引页的查询。如果观察到建立哈希索引可以带来速度提升,则建立哈希索引,称之为自适应哈希索引。(Adaptive Hash Index, AHI) AHI是通过缓冲池的B+树页构造而来,因此建立的速度很快,而且不需要对整张表构建哈希索引。InnoDB存储引擎会自动根据访问的频率和模式来自动地为某些热点页建立哈希索引。 AHI的要求: 要求对这个页的连续访问模式必须是一样的。 例如:where a=xxx和where a=xxx and b=xxx,访...

阅读更多