个人背景
先说一下个人背景,国内985本硕博,科研方向是底层计算机视觉,主要方向是超分辨率技术。旷视科技的面试目前进行了四轮,都是技术面试,简要记录一下问到的一些问题,以供大家参考~
一面
按照正常的流程应该是我先介绍一遍我博士期间的研究经历,但是,一面面试官读过我的paper!这是我面过的所有面试官里头唯一一个读过我的paper的哈哈哈哈,因此研究经历基本上就没有怎么讲了,面试官问了一些他在读我的paper时的疑问,我一一解答之后,问了两个需要编程或者推演的题目。
编程题
用numpy来实现一个图像的两倍双线性插值。这题是底层计算机视觉,尤其是做超分辨率方向的同学的必修课,所以比较简单,想了解的同学可以去搜索一下。
数学题
求n个独立同分布的均匀分布的最大值的期望。这个直接用求解cdf再求导得到pdf、最后积分求期望的方法来求解就可以了。
二面
二面首先还是简单介绍了一下自己的工作,面试官就工作内容问了一些问题。然后问了几个和深度学习框架Pytorch有关的问题,还问了两个算法题。
Pytorch相关问题
题一
以下三个问题任选一个来写:
1. deformable convolution的实现;
2. convolution的实现,尤其是im2col的使用;
3. 超分中比较熟悉的算子或者operation的实现。
我选择了个人比较熟悉的deformable convolution,使用numpy实现了以下。
题二
ReLU函数的正向函数、反向函数以及在Pytorch中的实现有什么要注意的。比较常规的问题。
题三
Pytorch中,定义一个模块或者网络需要用到init函数和forward函数,forward函数本质上是继承自nn.Layer类的()方法?内置的call方法。
算法题
题一
实现滑窗中位数,即input:[1,2,1,9,3,5,6,7],window_size:3,output:[2,3,5,5,6]。
面试官想让我从最简单最笨的办法推起,逐步寻找算法可以优化的点,直到达到最优。
题二
田忌赛马的问题,具体可以上leetcode去搜一下。
三面
三面主要问的也是研究经历,本来想让我写双线性插值的,我说前面的面试官问过了,就问了我向上插值和向下插值需要注意些什么,然后出了一道算法题。
用一次遍历求解数组中两个数的差的最大值。
四面(终面)
终面面试官等了得有一个月,首先是让我介绍了一个我的paper,然后就paper问了一些内容,随后就问到了编程的问题。
- Pytorch的autograd机制、怎么计算二阶导数的?
- 给一个坐标集合xy,它是个的Tensor,包含n个二维空间点的坐标,用pytorch函数计算各个点两两之间的欧式距离,返回一个的Tensor。
第二道题一开始想岔了,没去认真推,写得有点问题,后来就有点小紧张,只实现了交叉项,没有想明白平方项怎么实现,面试官提示之后才知道怎么写。
小结
目前面试结果还没出,但是终面感觉自己表现得不是很好,所以等等看结果好了。旷视的各个面试官都非常nice,不像有些公司的面试官态度比较欠佳,旷视的面试官们技术问题问得非常深入,代码问题也问得很深入,可以看出来旷视的技术实力还是很不错的。希望给过呀,冲冲冲!
全部评论
(6) 回帖