深度学习从入门到面试
深度学习从入门到面试
第一项: 整体设计的方案和框架烂熟于心
第二项: 各个模块的原理
第三项: 各个模块之间如何连接,接口参数
个人情况
填充简历
举个栗子: yolo为例
面试过程
个人情况
普通一本,本科,电子信息工程专业, 比赛经历丰富,本科大三之前以学习硬件电路,单片机编程为主,成品项目作品10余个,
大四开始学习python, 机器学习,深度学习, 开始找工作,主要以图像和深度学习方向为主.
填充简历
深度学习(DeepLearning=DL),AI这些名词我也是从大二开始就有所听闻,但真正接触到这个领域是在大四. 发现了新大陆一样,毅然决然转行(工资比较诱人(⊙o⊙)…), 从我找硬件方面工作的经验来讲, 项目经历很重要. 所以在学习DL的时候以项目为目标,主要目的是为简历填充内容.
Yolo v2目标检测,人体姿势识别围棋旗子识别...
很多都是比较成熟的项目,要把别人的东西学到自己手里
我的三个目标:
整体设计的方案和框架烂熟于心
收集数据、分析数据,确定学习目标,选择算法、实现、测试并且改进的完整流程要走一遍, 要懂得你在哪里, 不能像无头苍蝇知识太多了.
数据输入, 模型设计,训练过程, 损失, 误差减小, 输出等 各个模块的原理.
各个模块之间如何连接,接口参数
举个栗子: yolo为例
第一项: 整体设计的方案和框架烂熟于心
检测目标
框架:
训练过程:
训练集 -> 网络 -> 误差 -> 最小误差 -> 保存权重
测试过程
测试图片 -> 网络 -> 输出预测参数 -> opencv 画框
(当然啦,只是举个栗子,具体要很详细的)
第二项: 各个模块的原理
每个模块的学习
第三项: 各个模块之间如何连接,接口参数
1.输入训练集和模型的输入如何连接
2.模型输出有哪些参数,如何根据这些参数绘制我需要图框,或者其他信息,
(以上是大方向的模型和外部显示的接口,还有内部接口,比如网络直接输出如何传播,是4维还是2维这些问题)
然后就是多问自己,为什么用这个,为什么这么写程序,多去百度,谷歌,一定要科学上网,youtube上很多介绍视频,bilibili也是不错的选择(我在b站学习…)
面试过程
大大小小也面了10多个公司吧,有大的有小的,
我主要面2个岗位,深度学习工程师, 深度学习嵌入式, 加速, 有些偏硬件.
总结一下:
大公司喜欢问大量的计算机基础知识,考察工程能力, 数据结构,leetcode ,这不是一朝一夕可以搞定的.
工程师面大部分从项目入手,细节问题,如何实现,遇到何种问题.
一些原理问题:
过拟合怎么解决
欠拟合怎么解决
为何会产生梯度消失爆炸
dropout为什么可以解决过拟合
L1和L2 正则化的原理
线性回归,和逻辑回归的损失loss 推导
为什么线性回归的损失使用均方误差,
为什么逻辑回归使用交叉熵
反向传递推导
除了深度还有 机器学习的一些:
频率学派和贝叶斯派的区别
贝叶斯公式
SVM 对偶的推导
还有就是问一些实际的:
你用过哪些训练集
xml, txt ,tfrecord如何读取文件, io,读取和输出的问题(这和我上文说的接口有很大关系)
常见的目标函数,激活函数和优化算法
很多问题都是在你的项目里面被提出来的, 根据你的项目随着框架一步一步问下来,你要对自己所做的东西熟悉,还要反思,有什么可以改进,为什么用这种优化方式,等等
除了算法,还有你对工具的熟悉程度,你用的框架 Tensorflow,caffe等等,官网是第一选择,youtube也有很多讲解视频,群主也会有很多入门视频等等,我的做法是了解 -> 熟练, 一个代码可能要自己抄一遍,然后根据自己印象中的框架在重新写一遍,就会发现很多语法,和不清楚的问题.
说一下笔试英伟达Deep Learning Performance Architect岗的过程吧,十分感谢群主介绍英伟达HR给我,让我有机会投递简历,可以进入从40多人选10多人的笔试环节. 据HR小姐姐讲,由于我项目经历比较多,觉得我还是比较努力上心的(罒ω罒偷笑). 规定时间1个半小时内做题写程序, 要可运行, 我觉得是筛选笔试吧,题目比较基础, 还在等待结果, 不过已经很开心了.
Given an integer number N(n = m^2-1),
print sequence 0,1,2,3,..., n,in below form.
You can only use printf(C)or cout(C++).
For example, given n =24(5^2-1), the program should output
01234
151617185
142324196
132221207
12111098
1.What memory & computation complexity of your algorithm?
2.Is there an algorithm to get O(1) of memory and O(n) of computation complexity
Write a function that reverses an ASCIIZ string in-place.
// advised prototype;You can define your own.
void reverse(char * s)
{}
Please implement a program to output all permutations of an input string in any order. e.g.with
input "abc", it outputs below strings on screen.
abc
bac
cba
bca
cab
acb
// advised prototype;You can define your own.
void printPermutations(const char *str)
{}
For series f(n)={1,0≤ n
write a non-recursive program to
compute f(n).
int calc_f(int n)
{
// …
以上是我的经历,有需要交流的,可以给我头条留言!也可以加入社群找到我!
关注人工智能



4000520066 欢迎批评指正
All Rights Reserved 新浪公司 版权所有