8 frank909

尚未进行身份认证

你就像黑夜,拥有寂静和群星。个人公众号:frankcall

等级
TA的排名 1k+

从女友和老妈的使用角度看精确率(precision)和召回率(recall)的不同

机器学习和深度学习中,精确率和召回率经常会被提起,但因为太绕了,许久不用后,又通常容易忘记或者是搞混。本文以一个稍显调皮的例子说明两者的不同,以便自己能够加深理解。基础概念讲精准率和召回率前先讲一些基本的概念,因为两者的公式基于此。TPTP 是 True Positives 的缩写,指的是真正的正样本,也可以叫做真阳性。样本是正样本,预测结果也是正样本。FNFN 是 False N...

2020-01-16 11:07:40

今天我面试了一位年龄 46 岁的程序员,结果思绪万千

最近一直忙于面试,人事推给了我一份简历,职位是算法工程师,年龄是 46 岁,我揉了揉眼镜后再看看,确实是 46 岁。抱着忐忑的心,我电话面试一番后,还是不觉得他和我们的团队很适合。人都会有同理心,尤其是这么大岁数的程序员还是为了生计来找工作,心还是会隐隐触痛。年龄是多数程序员的天敌,之前没有概念因为生活中样本较少,现在来了一个鲜明的例子,并且还需要自己亲手关闭一扇门,总会有一个世道轮回的后怕。...

2019-12-19 11:14:14

死磕YOLO系列,YOLOv1 的大脑、躯干和手脚

YOLO 是我非常喜欢的目标检测算法,堪称工业级的目标检测,能够达到实时的要求,它帮我解决了许多实际问题。这就是 YOLO 的目标检测效果。它定位了图像中物体的位置,当然,也能预测物体的类别。之前我有写博文介绍过它,但是每次重新读它的论文,我都有新的收获,为此我准备写一个系列的文章来详尽分析它。这是第一篇,从它的起始 YOLOv1 讲起。YOLOv1 的论文地址:https://www.c...

2019-11-20 16:06:26

非科班程序员AI学习路径建议

本文适用于有下面情况的同学们:对 AI 感兴趣非科班数学基础不好对算法抗拒研究生一下学历近几年,AI 很火,在很多领域都取得了突破性的成果。这吸引了很多人的目光,我从几年前决定投入到 AI 的怀抱中,过程很艰苦,走了很多弯路,希望此文能带给新人一些提示。数学问题很多同学担心自己数学底子薄,所以要不要入 AI 考虑了很久,还不敢下定决心。我也是本科毕业,大学荒废了数学。后来,...

2019-11-08 11:21:34

碎片化写作后,我准备将毕生所学体系化地展示出来

最近听人讲解唐诗,忽然特别喜欢「斐然」一词。我觉得人生应该如此,潇洒而不拘。程序员的坎应该是年龄,三旬已是老汉,可出于热爱我希望自己能编程到老。一个人最宝贵的应该是思想,一个程序员最宝贵的东西应该是算法思想和编程经验。我将在此星球,撰写系列纯技术文章。目前规划是:基础算法系列设计模式系列软件架构系列程序员的数学系列机器学习系列深度学习系列甚至自动驾驶系列。价格方面,我会...

2019-10-21 14:50:49

作为技术面试官,我在面试时考虑什么?

最近一段时间,公司大量进行校招,团队也需要很多社招的岗位,作为某个领域的技术负责人,我也因此经常电话面试和现场面试。求职者每次可能会事后反思,我这次到底表现如何,下次怎么样才能改进。作为一个面试官,我们也需要这样,我也会经常总结和反思自己的面试技巧,现分享如下,希望求职者能有反向的思维,下次面试成绩能更好。机会是留给有针对性准备的人的我觉得是这是最重要的一点,很多人可能觉得同伴和同学跟你差...

2019-10-21 09:43:17

深入浅出CMake(四):配置多线程

我们知道,直接用 g++ 编译多线程代码时,可以这样。gcc -o test test.c -lpthread但是,如果整个工程是 CMake 构建的,需要怎么做呢?修改 CMakeFileLists.txt 文件。假设,要链接的目标叫做 test,只需要简单 2 行代码就好了。find_package(Threads)target_link_libraries(test ${C...

2019-10-14 16:55:13

【小算法】二分图匹配之匈牙利算法详解(图例说明,代码亲测可用)

在软件开发领域,任务指派和数据关联是一种常见业务需求,比如买卖订单的匹配,共享出行的人车匹配,及自动驾驶领域中目标追踪。这都牵扯到一种技术,那就是数据关联,而匈牙利算法就是解决此类问题最典型的算法,也是今天本文的主题。我们感性的认为目标之间的匹配好像一目了然的样子,但是计算机可不这样认为。计算机是理性的,如果要处理问题,一般我们会用数据结构来表示数据,栈、队列、树、图都很常用。上面的形式,...

2019-10-10 10:01:25

【小算法】图的遍历之广度优先(BFS)

谈到算法,图的操作是避免不了。而我们一般谈到图时,又必定会谈到图的遍历。图的遍历通常有 2 种,深度优先(DFS) 和广度优先(BFS)。深度优先可以阅读我这篇博文:【小算法】图的遍历之深度优先(DFS)本篇博文讲解广度优先(BFS)。图的表示图有两种表示方式1. 临接矩阵其实就是一个权重矩阵,用 1 代表两个结点有连接,0 表示没有连接,这样的表示方式通俗易懂,特别适合稠密图...

2019-09-29 00:10:21

【小算法】图的遍历之深度优先(DFS)

谈到算法,图的操作是避免不了。而我们一般谈到图时,又必定会谈到图的遍历。图的遍历通常有 2 种,深度优先(DFS) 和广度优先(BFS)。本篇博文讲解深度优先(DFS)。图的表示图有两种表示方式1. 临接矩阵其实就是一个权重矩阵,用 1 代表两个结点有连接,0 表示没有连接,这样的表示方式通俗易懂,特别适合稠密图,也就是大多数结点是亮亮连接的情况。2. 临接表用一个数组储存...

2019-09-27 18:18:20

CMake 进行调试

在Linux下开发,可以用gdb进行调试,但是如果工程是用CMake构建的,那么需要在CMakeLists.txt中加入如下代码:CMake配置SET(CMAKE_BUILD_TYPE"Debug")SET(CMAKE_CXX_FLAGS_DEBUG"$ENV{CXXFLAGS}-O0-Wall-g2-ggdb")SET(CMAKE_CXX_FLAGS...

2019-09-18 17:42:44

用Pytorch自建6层神经网络训练Fashion-MNIST数据集,测试准确率达到 92%

一般的深度学习入门例子是 MNIST 的训练和测试,几乎就算是深度学习领域的 HELLO WORLD 了,但是,有一个问题是,MNIST 太简单了,初学者闭着眼镜随便构造几层网络就可以将准确率提升到 90% 以上。但是,初学者这算入门了吗?答案是没有。现实开发当中的例子可没有这么简单,如果让初学者直接去上手 VOC 或者是 COCO 这样的数据集,很可能自己搭建的神经网络准确率不超过 30%。...

2019-09-10 11:19:44

开发者常用及实用 Linux Shell 命令备忘录

最近都需要在 Linux 系统下开发,所以经常需要在终端中进行操作。Linux 有很多 shell 命令可以帮助我们完成任务,但不常使用的话就会忘记掉。本篇作为命令备忘录,我会将实际工作当中用到的命令记录下来,并长期保持更新。1.whichwhich 用于查找一个文件,并返回绝对路径,查找的目录范围由系统的 PATH 指定。由于 Linux 中一切皆文件,所以 which 指定更多的是查找...

2019-09-05 08:50:14

【小算法】二分查找

谈论算法,典型的问题除了排序,还有查找。查找就是,从一个数据集合中查找某个数,如果找到了就返回该数据在数据集中的索引,否则返回 -1。最简单的方法就是从头到尾依次查找。但这有个问题,顺序查找时间复杂度是O(n)O(n)O(n),如果要从 1 亿个数据中查找某个数,最坏的情况要查找 1 亿次。那么有没有更快速的算法呢?答案是有的,这篇文章讲的二分查找就是这样一种,它的时间复杂度是O(log...

2019-09-04 16:08:27

【小算法】插入排序

插入排序也是一种非常容易理解的算法,核心思想就是每次将新的元素往原本有序的数组中插入。算法思路假设有下面一组数据,需要从小到大升序排列。插入排序的算法是1. 进行多轮迭代。2. 每一次迭代的前提是将当前的数值插入到前面已经排序好的子数组当中。也许描述有写抽象,但用显示当中玩扑克牌的经验可以很好地类比插入排序。比如你手里已经有一堆牌。5、6、J、K如果你再抓到一张 9,那...

2019-08-29 16:34:36

【小算法】冒泡排序

冒泡排序是大多学人学到的第一个排序,教科书上在众多的排序算法中选择它作为示例,我想还是因为它够简单,易于理解吧。假设有下面一组数据,需要从小到大升序排列。冒泡排序的算法是1. 从左到右,依次比较相邻两个位置的数据,如果左边的数值较大,就交换它们,这样在单轮操作中,最大的数会交换到最右边。2. 重复多轮操作,重复的次数和数组的长度相同。3. 排序完成。冒泡排序的过核心思想就是 交换。...

2019-08-26 20:32:32

【小算法】快速排序

快速排序是一种运用非常广的算法,但不是那么好理解。假设有下面一组数据,需要从小到大升序排列。快速排序的算法是1. 确定不用排序的条件2. 确定每次排序时,选择排序的基准值(pivot)3. 排序依据,将当前数组中,所有比 pivot 大的数值存放到新的数组 right 挪到右边,所有比 pivot 小的数值存放到一个新的数组 left 挪到左边,然后一起拼接起来。4. 利用递归思想,调...

2019-08-15 15:21:34

【小算法】选择排序

选择排序是一种非常容易理解的算法。算法思路假设有下面一组数据,需要从小到大升序排列。选择排序的算法是1. 创建一个列表或者数组2. 第一次遍历数组,找出最小的一个数存放在新的数组中。3. 第二次遍历数组,找出次小的数存放在新的数组。4. 重复类似操作,直到所有的数据排列完成图例示意:Python 代码演示:def sort(srcArr): dstArr = ...

2019-08-06 11:49:48

我的第一次技术付费尝试

陆续在 CSDN 上写技术博文几年了,访问量已经 150W 了,全部是原创文章,写得很用心,也感觉到了读者的肯定。但人都需要「恰饭」,加上自己年龄渐长,为了激励自己抽出时间继续技术博文的创作,输出更高质量的内容,现在下定决心要尝试往技术付费路线上走。我本人一直习惯于知识付费,我在各个平台订购了大量的书籍、音频、视频、专栏文章。这些也帮助我成为一个更好的人。我的第一次技术收费文章将在 Gitc...

2019-07-24 15:14:16

深入浅出CMake(三):find_package 添加依赖库

深入浅出CMake(一):基础篇深入浅出CMake(二):基础语法及实现九九乘法表有了前面两篇博文的基础,相信我们已经能够用CMake去编译比较简单的工程了,但是我们还差一步就可以应付大多数开发编译场景。目前我们还不知道怎么样处理在工程中引入第三方库。以Unix环境下的c++代码工程为例。加入工程要引入一个libtest.so动态库,源码是hello.cpp。如果用...

2019-06-13 12:04:44

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 技术圈认证
    技术圈认证
    博客专家完成年度认证,即可获得
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 原力计划专属勋章
    原力计划专属勋章
    参与原力计划活动,成功进入英雄榜即可获得