- 博客(15)
- 收藏
- 关注
翻译 理解目标检测中的mAP指标(1)
如果你已经评估过目标检测模型或者读过这个领域的相关论文,那你一定碰到“平均均值精确率”或者“mAP”这个概念。mAP被目标检测竞赛(比如PASCAL VOC,ImageNet以及COCO )当做模型性能评估的一种方式。在这篇文章中,我将介绍:mAp是什么?为什么mAP在目标检测中是一种有用的度量方式对于特定的类别如何计算mAP另外,我将提供计算mAP的代码方便读者可以在自己的项目中使用...
2020-01-12 19:19:32
1695
原创 深入浅出了解JVM
JVM的基本结构了解JVM是每个学java人的必经之路,JVM对于java就像心脏对于人一样,JVM的结构如下图: 1. PC寄存器 每个线程拥有一个PC寄存器,在线程创建时创建,指向的是下一条指令地址,但是在执行本地方法时,PC的值是未定义的。 2. 方法区 保存装载的类的元信息(类型的常量池,字段、方法信息,方法字节码等),被所以的线程共享 3. java堆 和方法区一...
2018-03-29 19:08:41
456
原创 有穷自动机的简单使用
请实现一个函数用来匹配包括’.’和’‘的正则表达式。模式中的字符’.’表示任意一个字符,而’‘表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串”aaa”与模式”a.a”和”ab*ac*a”匹配,但是与”aa.a”和”ab*a”均不匹配import java.util.ArrayDeque;import java.util....
2018-03-25 22:27:37
1723
原创 C++学习笔记
知识模糊点拷贝与赋值的区别 对象的拷贝会在初始化变量,以值的方式传递或者返回一个对象时发生;而赋值操作是在对象初始化完后,利用赋值运算符时发生的 int a=3; //这是拷贝操作 a=4; //这是赋值操作
2017-08-22 23:19:51
205
原创 Android 系统学习
Android Bander 通信Android Bander如何实现一次拷贝的? Bander通讯的核心是Bander Driver,它可以把一块内存区域映射到内核空间的同时也映射到用户空间,与传统的IPC的两次缓冲拷贝相比,Bander通讯只需要一次拷贝,同时也需要复杂的映射关系。
2017-08-22 09:45:24
296
原创 ubuntu 技巧及命令学习
命令学习apt 库软件搜索命令 apt-cache search software'namemount命令 a.查看镜像文件的信息 fdisk -lu simple.imgb.挂载指定位置的镜像文件 sudo mount -o offset=XXXX sample.img /mnt/pointc.查看与文件相关联的loop设备 losetup -aobjdum...
2017-08-22 09:39:56
1140
原创 Linux内核学习总结
回顾不知不觉中Linux内核课程已经结束,孟宁老师用幽默、探讨式的教学方法以Linux源码为依据,围绕系统调用、进程创建、进程切换,系统性的巧妙的讲述了Linux内核中最为核心的知识。下面对每周的课程进行简要的回顾计算机是如何工作的? 更准确的说这部分是描述程序是怎样借助堆栈和寄存器运行起来的,以及如何对一简单程序进行汇编和分析该程序的堆栈变化。这部分还大量的介绍了汇编指令的作用,如ret 操作
2017-04-22 14:42:19
248
原创 理解进程调度时机跟踪分析进程调度与进程切换的过程
进程的调度无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数、这将导致它们互相争夺处理机。另外,系统进程也同样需要使用处理机。这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。调度发生的时机: 通过系统调用资源让出运行; 系统调用中因某种原因受阻; 因某种原因唤醒一个进程; 时钟中断服务程序发现当前进程运行太久;调度策略 SCHE
2017-04-16 21:56:54
423
原创 Linux内核如何装载和启动一个可执行程序
可执行文件的创建预处理阶段 这一过程,主要针对#include和#define进行处理,具体过程如下:对于cpp文件中经常会出现#include来包含某个头文件,在进行预处理之后,所有的#include命令都将替换成该头文件中的详细内容,如果该头文件中还包含另外的头文件,采用同样的方法进行递归处理。同样#define亦是如此,对用它进行宏定义的字符进行替换,这里就是简单的替换。所以整个预处理过程
2017-04-09 22:28:56
277
原创 分析Linux内核创建一个新进程的过程
黄二玉+ 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000进程进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。当一个程序存放在储存介质上的时候,它只是一个指令,数据及其组织形式的描述。操作系统可以将一个程序加载
2017-04-02 20:52:05
385
原创 分析system_call中断处理过程
预备知识中断向量,中断向量表,系统调用号中断向量是指中断服务程序入口地址,一个中断向量占据4字节空间(x86)。 中断向量表是由多个中断向量组成的一张表。系统调用号是该中断向量在该表的位置(从0开始)。 因此系统调用号按为右移两位在加上表的基址可以得到相应的中断向量的位置,该位置上存放了中断向量,即中断处理程序的入口地址; linux系统调用的过程简化后的代码如下(Linux
2017-03-26 12:26:55
333
原创 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
预备知识系统调用(System call) The architecture of most modern processors, with the exception of some embedded systems, involves a security model. For example, the rings model specifies multiple privilege lev
2017-03-17 22:41:26
411
原创 跟踪内核从start_kernel到init进程启动
黄二玉+原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ”预备知识使用gdb跟踪qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -S 打开另一个shell窗口 gdb (gdb
2017-03-11 18:27:53
390
原创 mykernel的运行与初步分析
黄二玉+《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 预备知识内嵌汇编内嵌汇编语法: _asm_( 汇编语句模板: 输出部分: 输入部分: 破坏描述部分); 同时”asm”也可以由“asm”来代替,“asm”是”asm“的别名。在”asm”后面有时也会加上”volatile“表示编译
2017-03-04 10:00:37
447
原创 把.c文件转为汇编,并分析堆栈
黄二玉+《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ”预备知识cup的内部寄存器通用寄存器: 数据寄存器: AX,BX,CX,DX 地址指针和变址寄存器:SP,BP,SI,DI段寄存器:CS,DS,SS,ES指令指针 IP标志寄存器 FLAGS在不同型号的机器上,用于表示的字母和寄存器的种类可能不
2017-02-25 00:05:17
674
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人