散列表-下LRU缓存淘汰算法首先回顾一下如何使用链表实现LRU缓存淘汰算法。需要维持一个按照访问时间从大到小排列的链表,当缓存空间不足时,直接删除表头的元素即可。 当要缓存某个数据时,首先在链表中进行查找,当找到时,将该数据移动到表尾即可,未找到时,在表尾插入该数据。只用链表实现的LRU的查找时间复 ...
Python全局解释器锁(GIL)
Python全局解释器锁(GIL)以如下代码为例: def CountDown(n): while n > 0: n -= 1 首先测试其在单线程情况下的运行时长,在我的机器上,上述代码的运行时间为6s左右。 下面测试上述代码的多线程版本的运行时间: from thread ...
如何构建SSD目标检测网络?
如何构建SSD目标检测网络?这是一篇翻译文章,原文链接。 思想在深度学习模型中,随着深度的增加特征图的大小逐渐降低。深层的网络具有更大的感受野,同时具有更为抽象的表示能力,而浅层的感受野相对较小。在目标检测中,因为小的目标不需要更大的感受野并且更大的感受野会使得模型在检测小目标时变得混乱,因而可以使 ...
Python并发编程
Python并发编程区分并发(Concurrency)与并行(Parallelism)首先,我们要区分并发与并行,这是一对易混的概念。 并发在Python中,并发并不是指在同一时刻有多个操作(thread、task)同时进行。在某个特定的时刻,它只允许有一个操作发生,只不过线程、任务之间会互相切换, ...
C++中的资源管理:堆、栈和RAII
C++中的资源管理:堆、栈和RAII本文为现代C++实战30讲的学习笔记。 基础概念C++的内存管理中存在一些基础概念,下面将分别进行介绍。 堆英文名为heap,指的是内存中被动态分配的区域,内存管理中的堆和数据结构中的堆不同,该部分内存在被分配后,需要手动释放,不然会造成内存泄露。 在C++中,堆 ...
何凯明无监督论文-Momentum Contrast for Unsupervised Visual Representation Learning (MoCo)
Momentum Contrast for Unsupervised Visual Representation Learning (MoCo)用于视觉表示学习的动量对比。 作者:Kaiming He 以及FAIR的一众大佬 简介这篇文章主要解决的是无监督视觉表示学习问题。作者从将对比学习看做字典查 ...
模型剪枝-网络瘦身(network sliming)
模型剪枝-网络瘦身(network sliming)这是一篇ICCV2017年的论文,最近在读剪枝的论文时,有很多论文都提到了这篇文章,因而总结一下该文章的思想。 简述网络模型越来越大,导致在实际生产环境中,无法将现有的模型有效地部署在边缘设备上。为了解决这一问题,本文的作者提出了一种具有创新性的剪 ...
Learning Efficient Object Detection Models with Knowledge Distillation
Learning Efficient Object Detection Models with Knowledge Distillation这篇应该是第一篇使用知识蒸馏解决高效目标检测网络的训练问题的文章,在该文中,作者作出了以下贡献: 提出一个使用知识蒸馏和启示学习方法学习紧凑、快速目标检测网络的 ...