一面
自我介绍什么的老生常谈,我就不用说了,除了暑假实习面试,这大概是第一次面试了,贼紧张,所以简短的介绍了下自己,然后面试官看了看我的简历,我两个项目一个做的是跟踪,一个做的是表情识别,熟悉深度学习,而且项目里也用了。
1、面试官让我手写一下图像卷积的函数
(我一般都直接python调函数了,我怎么可能自己写!但是我不能这么说,于是)我淡定的提起笔写了一个卷积的函数,无非就是卷积核在图像上以一个像素为中心然后求积再求和,然后以下一个像素为中心迭代进行,所以懂原理就很好写啦,之前实习面试还让我写过矩阵转置的函数,面试官都比较喜欢问这些吧可能,代码水平不高,所以面试官可能看起来比较费劲。
2、聊聊项目,讲一下都知道哪些深度网络
我说我最近看了Faster R-CNN还试着做了些实验(给自己挖了个坑),他问我原理,没讲出来多少,不过等于显示了下自己的知识面吧,也没过多问了。
3、对于最近的一些图像识别的网络有了解吗
emmmmm。。没有
4、看你对C++熟悉来说说C++吧,define和const的区别,虚函数的实现原理
const和define的区别的话,答上了几点,但是也不全,有些忘了,Effective C++里有很详细的描述,大家可以看下,虚函数的实现原理。。。。打扰了,告辞,我只是会用,还知道继承的机制,但是我不懂原理啊。
5、那我们还是来聊聊算法吧
写一下树的层次遍历,这个简单,分分钟搞定,没问题。然后现在给你一列数字,这一列数字基本都是成对出现的,但是位置可能不临近,只有两个数字不是成对的,写出算法找出这两个数字。我算法一般吧,第一反应hashmap存储,遍历找到,面试官问有没有更快的。。十年后。。。对不起,想不出来,面试官提示用异或,好吧,这题我没刷到,短时间想不出来。然后手写下快排吧,写的飞快(只能靠这种简单的程序刷脸,好丢人)。
6、说说你如何使用传统方法来做你的项目,你是如何看待深度学习和传统方法的
因为我没有实习经历,所以我对自己的项目准备的挺充分的,说的还可以,但是面试官好像对我如何看到深度学习和传统方法这个回答不太满意,不过也没有深究。
不知不觉一个小时过去了,我觉得一面不好,甚至做好了回家的准备,结果居然进了二面。
二面
有了一面的惨痛教训,再加上一面和二面只隔了一个午饭的时间,所以。。。只能祈祷二面面试官跟我八字相合了。开始还是自我介绍。
1、说说你的项目吧
我先说的表情识别的项目,问我又遇到什么难点,所以准备项目的时候一定要准备好这些东西,还有项目里的原理必须搞懂,比如说讲一下反向传播的原理(我画图写公式带比划,感觉答得还不错,面试官一直嗯嗯嗯,可能是口头禅?),为什么你的网络里使用了两个全连接层而不是一个。我另一个项目是使用camshift做跟踪,讲一下camshift的原理,这个我之前也做有准备,答得还不错,面试官依旧是嗯嗯嗯的回答。
2、(依旧是手撕代码时刻)一个矩阵从左到右值依次增大,从上到下依次增大,现在给你一个数,如果矩阵中存在这个数则返回位置,否则返回-1
剑指offer原题啊,那我不得给你撕的明明白白,但是我紧张啊,表现的好像第一次见这题一样,还是谨慎的画了图再写代码,不过这给之后为面试官讲解代码带来了便利,我有图啊,所以推荐在写代码的时候画画图,我之前的快排也是画图给面试官讲的。
可能是因为之前问的东西答得都比较顺吧,而且感觉也是运气好,遇到的面试官不想为难我,所以到此为止了,出去等着,过了一会儿就带我去见HR小姐姐了。