2020年深度学习算法工程师面经(微软、阿里、商汤、滴滴、华为、海康、平安、陌陌等offer)
加入极市专业CV交流群,与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度 等名校名企视觉开发者互动交流!
同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。关注 极市平台 公众号 ,回复 加群,立刻申请入群~
一、深度学习
1.模型类
1.1 resnet和densenet及其不同
1.2 resnet两种结构具体怎么实现,bottleneck的作用,为什么可以降低计算量,resnet参数量和模型大小
1.3 Inception系列的演化
1.4 知道哪些移动端/轻量化模型
1.5 GAN
2.卷积类
2.1 卷积神经网络结构特点
2.2 知道哪些卷积
2.3 深度可分离卷积
2.4 deformable conv怎么做
2.5 1x1卷积作用
3.深度学习基础
3.1 BN的原理、作用和实现细节,
3.2 激活函数
3.3 损失函数/分类的loss函数
3.4 过拟合/欠拟合,预防方法
3.5 梯度消失/梯度爆炸
3.6 网络退化
3.7 各种优化器
3.8 调参技巧
3.9 神经网络组件
3.10 深度神经网络和深度学习区别
3.11 深度学习为什么比机器学习好
3.12 train,val,test相关
3.13 如果训练集不平衡,测试集平衡,直接训练和过采样欠采样处理,哪个更好
3.14 softmax原理
3.15 F1score是_α_
=1,那么_α_
什么时候取其他值
3.16 梯度物理意义,小球下滚,如果坡很陡,会怎么样,梯度的大小和方向
3.17 pooling层的作用
3.18 监督学习和非监督学习举例
3.19 假设空间与归纳偏好
3.20 感受野相关
3.21 如果模型不收敛,怎么调节
3.22 l1/l2正则,怎么选择
3.23 解释梯度下降
3.24 链式法则
二、机器学习基础
1.logistic回归
2.svm
3.选择传统机器学习还是深度学习的标准是什么
4.随机森林
5.决策树
三、图像处理基础
1.数字图像处理,各种滤波
2.进行过哪些数据预处理
3. 图形学知道哪些
四、数学基础
1.概率:圆上任意三个点组成的三角形,包含圆心的概率
2.概率:x,y,z都是(0,1)均匀分布,x+y+z<1的概率
3.抛硬币直到连续若干次正面的概率
4.先验概率,后验概率,怎么转换
5.坐标0开始,依次走1,2,3,。。。,n步,可以左或者右,问有没有到不了的位置
6.n个门,1个后门是车,其余n-1个后门是羊,你先选一个,如果面试官告诉你其余n-1个中某个是羊,你会重新选择么
7.三个盒子,一个盒子两个红球,一个盒子一红一蓝,第三个盒子两个蓝球。一人随机选了一个盒子,并摸出一个红球,请问这个盒子里另外一个也是红球的概率是多少
五、算法基础
1.x的n次方(x任意,n自然数)
2.链表排序(然后不能动指针)
3.螺旋打印二维数组
4.删除字符
给定字符串和数字 abcdabcd 4
删除一个a bcdabcd
删除第二个a bcdbcd
删除一个b cdbcd
删除第二个b cdcd
5.螺旋三角形
5
1
2 12
3 13 11
4 14 15 10
5 6 7 8 9
6.二叉树深度及最长路径
7.排序
8.二叉树路径和为给定值
9.一个数组,其他数出现两次,另一个出现一次,找出
10.链表中倒数第k个结点
11.判断链表对称/链表回文
12.链表反转
13.逆序对
14.算法:爬楼梯
15.算法:连续子数组的最大和
16.算法:最长不重复子串
典型题.求一个数组中只包含0,1使得其中0,1个数相等的最大子数组
17.算法:给定一个数组A,求max(Ai - Aj)。其中 i < j 。
18.算法:扎气球
19 n个文件(海量文件),查找和排序,二分查找时间复杂度
20 一个数组里面是股票值,求什么时候购买和卖出,收益最大。
21. 最长连续公共子串
22.实现卷积计算
23.实现IoU和NMS
23.link
24.一维数组最大和
25.二维数组求最大和矩阵
26.二维数组有多少个子数组
27.二维矩阵左上角到右下角最大和
28.1-n数字里少一个,找出来
29.写VGG、resnet
30.输入D和I组成的字符串,输出数字数组,D表示Decrease,I代表Incre。
0, 1, 2, ... n-1...
case1:
IIII
0, 1, 2, 3, 4
case2:
DD
2, 1, 0
case3:
DIDI
4, 2, 3, 0, 1
case4:
DIDDI
534201
case5:
多解
DDI
3201
2103
方法:
strI
0123
3210I
(1)如果新增是I,则添加一size的数在最后
D I append(res.size())
(2)如果新增是D,则前面都加一,然后最后添加0
D D +1,append(0)
31.Leetcode 670 Maximum Swap
32.判断两线段是否相交
33.回文子串 Leetcode 647. Palindromic Substrings
示例 1:
输入: "abc"
输出: 3
解释: 三个回文子串: "a", "b", "c".
示例 2:
输入: "aaa"
输出: 6
说明: 6个回文子串: "a", "a", "a", "aa", "aa", "aaa".
34.对于一个元素各不相同且按升序排列的有序序列,请编写一个算法,创建一棵高度最小的二叉查找树。
35. 寻找两个元素异或的最大值。
36.工作方案
37.Valid Permutations for DI Sequence
38.atoi
39.根据顶点坐标,判断两个四边形/三角形是否相交
40.球队至少需要多少分可以出线,最多有多少分未出线
41.leetcode股票
double distance(double x1,double y1,double x2,double y2){
return (y2-y1)*(y2-y1)+(x2-x1)*(x2-x1);
}
bool isRec(double x1,double y1,double x2,double y2,double x3,double y3,double x4,double y4){
double x_center=(x1+x2+x3+x4)/4;
double y_center=(y1+y2+y3+y4)/4;
double d1=distance(x1,y1,x_center,y_center);
double d2=distance(x2,y2,x_center,y_center);
double d3=distance(x3,y3,x_center,y_center);
double d4=distance(x4,y4,x_center,y_center);
return d1==d2&&d2==d3&&d3==d4;
}
六、程序设计语言
1. Python
1.1 深拷贝和浅拷贝
1.2 list和tuple区别
1.4 list参数传递
2. C++
2.1 指针与引用的区别
2.2 继承与多态
2.3 数组和链表
2.4 内存泄漏和溢出
七、模型部署
1.tensorrt内部机制
2.分布式,多卡使用
(1)数据并行
(2)模型并行
(3)现在以数据并行为常用方式,模型并行主要难点在模型拆分上,二者通信量都很大。
(4)分布式的模型更新方式主要是两种 中心化(parameter server)和去中心化(ring all-reduce etc.)
3.剪枝怎么做,剪多少,效果变化多少
八、HR面试
1.个人规划
2.希望做研究还是工程
3.有没有和人发生争执的经历
4.实习遇到的困难
5.给你项目让你主导怎么规划
评论