计算机视觉算法面试

1.用numpy实现bicubic插值,bilinear插值。

2.阐述常见边缘提取算子,并介绍下CANNY算子的具体步骤?

3.机器学习中overfitting的常用解决方法。

4.BN的原理和具体实现,用Pytorch实现一下BN层。

BN训练的时候,均值和方差的统计量都是在batch维度上统计得到的,但是测试的时候batch size一般是1,没办法得到统计量,因此一般会保存最后一个训练批次得到的统计量,或者对最后几个批次的统计量进行moving average,用于最后的测试。

5、Dropout前传和后传的差异。
答案是按照概率将输出的feature置零,就可以同时解决前传和反传了。

6、BN和Dropout一起用的时候会出现什么问题?
主要是Dropout会使得BN要用的统计量产生误差,因此Dropout直接在BN前面用会有问题,具体的可以参考链接BN和Dropout一起用的问题。 

7、用较快的办法找到一个未排序数组第k大的数字。

答案参考:其实用冒泡排序就行了,冒k次就可以找到第k大的数字,给一个经典排序算法的链接:十大经典排序算法。 

8、用均匀分布随机整数生成器rand(7)来实现rand(10)。
应该用两个rand(7),构成一个二维的平面,然后将其中的一些点均分成10份,每一份代表1-10中的一个数字,就实现rand(10)了。
答案参考:这是leetcode里面的一道中等难度题目,Leetcode-470。 

9、计算机中一般常见的是均匀分布的(伪)随机数,如果要用正态分布,就需要用均匀分布去生成,那么如何用均匀分布生成正态分布?或者给出数学推导。
答案参考:其实上一问给出了一点提示的,可以通过类似的拒绝采样的方式来求解,不过在计算机编程语言中比较常用的还是Box-Muller方法,参考链接:均匀分布构造其他分布的方法。 

 

10、用过GAN吗?用过什么样的GAN?目前在用的GAN是什么?
 

11、你对网络结构的设计有什么心得?
要么就借鉴最新的、来自其他领域的、被证明了有效的框架和模块,如ResBlock、Channel Attention之类的,要么就根据当前任务的数据结构、图像模式、图像特征进行专门化的模块设计。 

12、怎么做网络轻量化?
回答是有三种方法,一种是设计轻量化的模块和结构,一种是对模型进行剪枝或者量化,一种是利用知识蒸馏技术用大模型教育小模型。随后他问了一下我了解过的轻量化模块,提了一下超分辨率里面用过的IMDB,他就让我介绍了一下IMDB的设计思路。 

13、你对attention机制的理解是什么?attention机制的优势和劣势分别在哪里?
我认为attention机制是对卷积局部性、位移不变性这两种特性的补充,通过全局的attention计算来实现较大的感受野。attention机制的优势是能够以较大的感受野来实现任务性能的提升,可以解决卷积的一些暂时不好解决的问题,但是它的劣势也比较明显,一来是计算量的问题,二来是不一定所有任务都需要attention,它也不是万能的东西。 

14、视频超分与图像超分之间的区别?
图像超分主要利用的是单张图像内部的局部、非局部特性作为约束和信息补充的渠道,而视频超分则在此基础上还要用到来自其他帧的信息,具体方法上二者的区别也体现在此,视频超分往往致力于怎么去更好地利用各帧之间的关系。

15、给定一个整数数组和一个目标值,返回数组中了两数之和等于目标值的数的下标。
用python,通过建立字典来做的,最后是新建了一个字典来去重,面试官觉得我建立新字典太耗费空间,我说可以通过merge字典的方式来避免新建,他提议可以双重遍历。 

16、如果想给抖音的一个视频做封面,可以怎么设计算法,让我讲两种不同的思路。
一个是根据视频内容,利用视频总结的方法(video summarization)提取出关键帧作为封面,第二个是根据大众的喜好,从视频中选取最容易引起高点击率的帧作为封面。 

17、有100盏灯,一开始都是亮的,第一次隔1盏灯按一下开关,第二次隔两盏,第99次隔99盏,问99次之后哪些灯是亮的。
从整数的因数角度回答了出来。
答案参考:这个其实是leetcode的一道中等难度的编程题,Leetcode-319。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值