網(wǎng)上搜了一下面經(jīng),都說是面試題最難的公司沉衣。冲簿。议纯。
一、面經(jīng)一
1.模型加速的方法:答:network pruning和dw conv银萍,簡單介紹了一下shufflenet和mobilenet的思路
2.recall和Fa的理解拔疚,重新改變softmax在0附近和1附近的值肥隆,對(duì)評(píng)價(jià)標(biāo)準(zhǔn)有沒有影響:答:沒有,順序不變就沒影響
3.項(xiàng)目中如果改為多標(biāo)簽分類稚失,label怎么設(shè)置栋艳。答:設(shè)置soft label
項(xiàng)目中的mask圖怎么加入的,為什么這么做
4.關(guān)鍵點(diǎn)檢測(cè)句各,heatmap中對(duì)于極大值和次大值吸占,如何操作:答:偏移1/4
如果直接回歸坐標(biāo),應(yīng)該怎么做凿宾,裝作想了半天矾屯,其實(shí)不會(huì),給我介紹了soft argmax初厚。并且介紹了HRnet件蚕,讓我試一下
5.focalloss的本質(zhì),為什么這么做产禾,為什么目標(biāo)檢測(cè)中提出排作,對(duì)分類真的有用嗎,這個(gè)類似于開放性問題亚情,交流了一下對(duì)于focalloss的理解妄痪,因?yàn)槟繕?biāo)檢測(cè)中一是類別不均衡,二是負(fù)例易分势似,所以focalloss有用拌夏,但是對(duì)于分類值得商討。
對(duì)于類別不均衡還有那些常見的操作:答:dataaug履因,ohem
6.CascadeRCNN的原理,本質(zhì)解決了什么問題盹愚。
7.Reploss的思想
8.yolov2中聚類是怎么做的栅迄。
9.介紹一下人臉識(shí)別中max-in-out的策略,為什么這么做皆怕,本質(zhì)是什么毅舆。
10.介紹一下GN的思想西篓。和BN比的優(yōu)勢(shì)。BN歸一化的是哪幾維憋活。BN在訓(xùn)練時(shí)怎么操作的岂津。BN在inference的時(shí)候用到的mean和var怎么來的:類似于滑動(dòng)平均,這個(gè)問題想了好久才想起來悦即,論文太久時(shí)間沒回顧了吮成。BN在inference的時(shí)候怎么加速:權(quán)重合并。BN跨卡訓(xùn)練怎么保證相同的mean和var:這個(gè)不會(huì)辜梳,問了面試官是SYNC粱甫,哎呀,前兩天在公司還看到過這個(gè)SYNC作瞄,還想查一下是干嘛的茶宵,沒來得及查就被問到了,唉唉唉宗挥。
11.網(wǎng)絡(luò)參數(shù)量怎么計(jì)算
二乌庶、面經(jīng)二
1.講項(xiàng)目(包括設(shè)計(jì)的論文)
有DaSiamRPN,SiamRPN++相比于SiamRPN的改進(jìn),如何解決了增加深度的問題
2.如何計(jì)算感受野
3.加速BN計(jì)算:
將BN和Conv結(jié)合
4.你理解多目標(biāo)跟蹤嗎
5.BN的前向傳播
三契耿、 面經(jīng)三
(一面)(算法面安拟,主要簡歷,80分鐘)
問了好多都是論文相關(guān)的宵喂,可能參考價(jià)值不大糠赦。
1、第一篇論文
a. 為什么第一階段檢測(cè)出來的box不利用锅棕?
首先box的數(shù)量大小是不固定的拙泽,不好直接融合;其次裸燎,類別概率圖可以一次把整張圖的關(guān)于小物體的信息都表示出來
b . 為什么背景不聚類
背景比較復(fù)雜顾瞻,不容易聚類。為了防止有些背景沒有被拉開德绿,使用了排序距離荷荤,這樣一種相對(duì)距離。
2移稳、第二篇論文
提到2個(gè)2D數(shù)據(jù)concat蕴纳,他們的位置是不一樣的,這樣直接concat有沒有問題个粱;問最后那個(gè)模塊有沒有和se比較
3古毛、bn訓(xùn)練,測(cè)試區(qū)別,bn如何在inference是加速(這里面試官說是可以融合到卷積里稻薇,因?yàn)閠est時(shí)嫂冻,bn是一個(gè)線性模型,卷積也是線性的塞椎,所有可以融合桨仿,具體怎么做,不知道)
4案狠、如何解決前景背景數(shù)量不均衡(OHEM服傍,focal loss,前景過采樣莺戒,2stage模型)
5伴嗡、一個(gè)類似多標(biāo)簽訓(xùn)練的問題,他的loss是怎么算(這里从铲,我主要說了下標(biāo)簽里one-hot的設(shè)置瘪校,在多個(gè)類別的one-hot里不止一個(gè)地方可以設(shè)置為1)
(二面)(工程面,90分鐘)
1名段、多路歸并
2阱扬、average pooling操作,輸入mn輸出mn伸辟,kernel大小k*k麻惶。
我想到的最優(yōu)解法:遍歷一個(gè)kK大小時(shí),記錄下當(dāng)前的sum信夫,kernel滑動(dòng)時(shí)窃蹋,把kernel最左側(cè)的一列元素減掉,加入新加入的右邊的一列静稻。時(shí)間復(fù)雜度m(kk + (n-1)k)警没,大約為mnk吧,聽面試官口氣不像是最優(yōu)解振湾,我覺的重點(diǎn)是實(shí)現(xiàn)出來自己的想法杀迹。
3、線程押搪,進(jìn)程區(qū)別树酪,python的線程和進(jìn)程
4、ssh相關(guān)大州,什么如果網(wǎng)絡(luò)斷了续语,在服務(wù)器上跑的程序會(huì)怎么樣,tmux原理
5摧茴、還有一些基礎(chǔ)知識(shí)绵载,想不起來了
(三面)(終面巨佬王乃巖博士, 100分鐘)
根據(jù)簡歷里的內(nèi)容苛白,向外延伸娃豹,問到不會(huì)為止,我心里是崩潰的购裙,可能是我太菜了懂版,還好乃巖博士很耐心。
1躏率、簡歷里用了一個(gè)fpn網(wǎng)絡(luò)做檢測(cè)躯畴,大佬是想問我我的數(shù)據(jù)有什么樣的特點(diǎn),針對(duì)這些特點(diǎn)可以做哪些針對(duì)性的方案薇芝。這里問了好久蓬抄,很慚愧,一開始都沒理解大佬的意思
2夯到、cascade rcnn論文里一些實(shí)驗(yàn)的細(xì)節(jié)嚷缭,為什么這樣做實(shí)驗(yàn)效果不好,你自己的看法是什么耍贾;介紹下DetNet阅爽。這里我是簡歷里寫了復(fù)現(xiàn)了這兩篇論文,所以被問到了
3荐开、為什么你的角點(diǎn)回歸不使用heatmap付翁,而使用smooth l1坐標(biāo)回歸,為什么通常大家使用heatmap做關(guān)鍵點(diǎn)
4晃听、ohem百侧,到底比focal loss差再哪里了
5、non-local的時(shí)間復(fù)雜度和你自己提出的這個(gè)模塊的時(shí)間復(fù)雜的能扒,介紹下GCNet
6佣渴、求了幾個(gè)感受野
7、還有一些問題赫粥,想不起來了
四观话、面經(jīng)四
(一面)
(1) 自我介紹:主要介紹研究生階段的研究方向和主要工作
(2) CPVR2019 workshop的工作的主要工作和貢獻(xiàn)(簡歷內(nèi)容,全部都問到核心和點(diǎn)子上了)
如何解決少樣本訓(xùn)練的難題
為什么使用半監(jiān)督重采樣方法就可以平衡樣本越平,原理是什么频蛔,會(huì)產(chǎn)生很多偽標(biāo)簽,怎么解決
為什么選用HRNET秦叛,為什么使用top-down的方法晦溪,有沒有使用檢測(cè)的方法
(3) 對(duì)檢測(cè)器熟不熟
(4) 平衡樣本的其他方法
添加樣本
resampling,reweight
OHKM
(5) TOP高校創(chuàng)新科技大賽的主要工作(簡歷內(nèi)容)
兩種解決標(biāo)注差異如何解決標(biāo)簽差異
mobilenet v1和mobilenet v2
suffinet 網(wǎng)絡(luò)(不是很熟挣跋,沒怎么回答)
(6) reversed label怎么實(shí)現(xiàn)的三圆,為什么這樣有效
(7) 有沒有其他方法來改進(jìn)姿態(tài)估計(jì)
結(jié)構(gòu)化約束
focal loss
難樣本挖掘
(8) focal loss用在其他任務(wù)的具體實(shí)現(xiàn)
(9) 知識(shí)整理在其他任務(wù)上的應(yīng)用,為什么有效
(二面):coding
(1) 可能因?yàn)榈谝粋€(gè)題花的時(shí)間久,面試官只給了我一道題
(2) 后面問了一些常用工程工具和語言的使用
(3) 主要還是考察碼工和工程能力
(4) 這一輪涼涼還是第一個(gè)題花的時(shí)間有點(diǎn)久舟肉,工程問題還是很簡單
求解x**5+x=1
(1) 牛頓法:簡單快速
(2) 二值法:實(shí)現(xiàn)簡單一點(diǎn)修噪,復(fù)雜度更好(自己采用的)
def get_value(x):
return x**5 + x - 1
def Calculate(start=0, end = 1, stand=1e-6):
middle = (start + end) / 2.0
v_start = get_value(start)
v_end = get_value(end)
v_middle = get_value(middle)
if end - start < stand :
return middle
else:
if v_middle < 0:
start = middle
else:
end = middle
return Calculate(start, end, stand)
print("results is {}".format(Calculate(0, 1, 1e-7)))
工程問題
(1) 動(dòng)態(tài)鏈接庫和靜態(tài)鏈接庫
(2) 代碼管理工具熟不熟:git常用命令
(3) git的忽略文件 .gitignore
(4) 多版本控制:virtual和docker
(5) ssh,tmux
(6) 大任務(wù)和耗時(shí)任務(wù)的處理:多線程(如多尺度測(cè)試)和分布式
(7) python的哈希容器
(8) list增刪改查時(shí)間復(fù)雜度
(9) 代碼倉庫用得多不多:gitlab和github日常用
五路媚、面經(jīng)五
介紹一下項(xiàng)目主要干了什么黄琼,解決了什么問題
介紹一下項(xiàng)目codebase的結(jié)構(gòu)
知識(shí)蒸餾用的什么方法
OFD主要是怎么實(shí)現(xiàn)的?
用的什么類型的蒸餾 講一下如何進(jìn)行蒸餾的
OFD用的什么損失函數(shù) 部分均方誤差損失函數(shù)
介紹一下Retinanet整慎,分類和回歸的損失函數(shù)是什么脏款,介紹一下focal loss
六、面經(jīng)六
技術(shù)面1裤园、2:
介紹科研經(jīng)歷
針對(duì)上述經(jīng)歷進(jìn)行提問撤师。
遠(yuǎn)程筆試:
求二叉樹上的逆序?qū)?shù)量
c++和Python的區(qū)別
如何用Python編譯可執(zhí)行文件
七、面經(jīng)七
自我介紹
介紹實(shí)習(xí)項(xiàng)目
是簡單的L1loss嗎
-
Homography矩陣有幾個(gè)自由度拧揽,為什么
image.png
單應(yīng)矩陣表達(dá)的是射影變換 其描述的是二維圖像點(diǎn)之間的關(guān)系 二維圖像用齊次坐標(biāo)來表達(dá) 單應(yīng)矩陣有九個(gè)變量 考慮到齊次坐標(biāo) 所以這九個(gè)變量存在一個(gè)尺度問題 所以是八個(gè)自由度 說白一點(diǎn) 你把這個(gè)矩陣乘以一個(gè)scale 表達(dá)的是一個(gè)單應(yīng) 因?yàn)楸旧砥浯巫鴺?biāo)乘以任意scale. 是表達(dá)一個(gè)點(diǎn)
訓(xùn)練中要對(duì)Homography矩陣數(shù)值進(jìn)行縮放剃盾,如何縮放
圖像級(jí)目標(biāo)用L1-loss的前提是什么
“亮度恒定”: 圖像中目標(biāo)的像素強(qiáng)度在連續(xù)幀之間不會(huì)發(fā)生變化。
能有其他loss直接或間接的監(jiān)督嗎
車道線檢測(cè)有什么方法能利用上車道線數(shù)據(jù)本身的特殊性(長條形)
SCNN
CRF后處理强法?万俗;DFN中的Smooth Network
如何過濾誤檢
如何保證過濾有效
有沒有在訓(xùn)練中考慮到類內(nèi)一致性,或者怎么克服intra-class inconsistency:類內(nèi)不一致
模型如何優(yōu)化加速的
DW卷積在哪種情況下比較慢
1饮怯、cudnn支持之前(cudnn 7 才開始支持 depthwise convolution)闰歪,大部分gpu下的實(shí)現(xiàn)都是for循環(huán)遍歷所有g(shù)roup,所以group很多時(shí)極慢 蓖墅,例如caffe
文章的Motivation 就是為了解決depthwise 比較慢的問題库倘,原因在文中進(jìn)行了分析。首先论矾,depthwise 的卷積核復(fù)用率比普通卷積要小很多教翩,內(nèi)存中的置換率比普通卷積要高;同時(shí)贪壳,depthwise 是per channel 的饱亿,每個(gè)卷積的操作矩陣都很小,這么小的矩陣不容易得到充分并行闰靴,這兩點(diǎn)是根本原因彪笼。
為什么要擬合直線
彎道如何處理
ransac原理
BN訓(xùn)練測(cè)試區(qū)別
八、面經(jīng)八
1.問了RRC蚂且,說這么老的論文配猫,你怎么還看?問我是怎么實(shí)現(xiàn)的杏死,為什么效果比較好泵肄?
我當(dāng)時(shí)忘了這個(gè)是什么時(shí)候的論文了捆交。他說,17年4月份的腐巢,我嚇了一跳品追,這都能記住,嚇得我直接切屏去查了查論文的發(fā)布時(shí)間系忙。我說類似于FPN诵盼,但是和FPN不同的是后續(xù)的block會(huì)對(duì)之前block做出貢獻(xiàn)惠豺,每個(gè)block由前面的block形成left银还,最后進(jìn)行concat,言辭及其的模糊洁墙,不知道怎么形容啊蛹疯。
2.問了一下CBNet,COCO上提升精度是與什么比較的热监?
巴拉巴拉
3.為什么anchor-free的方法能夠得以實(shí)現(xiàn)捺弦,主要是因?yàn)槭裁矗?br>
我回答主要是heatmap,然后高斯核分布孝扛,可以進(jìn)行key-point檢測(cè)列吼,對(duì)密集型區(qū)域的話,主要是縮小的gd的范圍苦始,他說我沒達(dá)到點(diǎn)子上寞钥。。陌选。理郑。(這時(shí)候頭條,百度相繼打電話咨油,我沒聽清他和我解釋的內(nèi)容您炉。。役电。)
4.ACNet是怎么實(shí)現(xiàn)的赚爵?
巴拉巴拉
5.SSD進(jìn)行了什么修改?
巴拉巴拉
6.one-stage與two-stage的區(qū)別法瑟?主要的劃分依據(jù)是什么冀膝?
類似于RCNN-fastercnn都是two-stage,yolo瓢谢,ssd都是one-stage畸写。這個(gè)問了差不多20多分鐘,他提了三種問題氓扛,問我是屬于哪一種枯芬,我后來回答论笔,有RPN得提取ROI并進(jìn)行Refine都算two-stage,他說這個(gè)是個(gè)開放性問題千所。狂魔。。淫痰。
7.batchnormalization訓(xùn)練和測(cè)試有什么區(qū)別最楷?
訓(xùn)練是一個(gè)batch計(jì)算,測(cè)試是移動(dòng)加權(quán)平均待错。
8…batchnormalization在部署的時(shí)候有什么技巧籽孙,加速?
回答火俄,不知道犯建,我沒有用過?(那你讓我咋說呢瓜客?)适瓦,后來他說.batchnormalization是線性的,卷積也是現(xiàn)行的谱仪,兩者可以合二為一進(jìn)行疊加玻熙,可以加速。疯攒。嗦随。(聽得云里霧里)
9.前景背景數(shù)量級(jí)相差過大用的是什么方法?傳統(tǒng)的二階段是怎么處理的卸例?
就會(huì)一個(gè)focal-loss称杨,簡單介紹了下。二階段是會(huì)先產(chǎn)生ROI區(qū)域筷转,這時(shí)候背景就少了很多姑原。他說沒有回答到點(diǎn)子上。是根據(jù)比例呜舒,1:3锭汛,背景是根據(jù)比例獲取的。
九袭蝗、面經(jīng)九
目標(biāo)檢測(cè)
做一下總結(jié)(one stage以及two stage)唤殴。
說一下RCNN流派以及yolo、SSD流派到腥。
分析一下他們的區(qū)別與聯(lián)系朵逝;為什么ssd、yolo等對(duì)小物體的檢測(cè)沒有two stage的方法好乡范。
語義分割
主要的兩種思路與做法(空洞卷積配名,skip-connection等)啤咽。
講解一下deeplab及其V2、V3渠脉、V3plus宇整,說一下和UNet等這些的區(qū)別。
計(jì)算空洞卷積的感受野芋膘。
實(shí)例分割
說一下maskRCNN的主要思路和流程
為什么在加入roialign之后鳞青,對(duì)于原來的fasterRCNN結(jié)構(gòu)能提升3個(gè)點(diǎn)左右,而對(duì)于基于FPN的fasterRCNN只能提升2個(gè)點(diǎn)为朋。
多目標(biāo)跟蹤
說一下具體的思路(基于檢測(cè)的跟蹤)臂拓,怎樣處理誤檢、漏檢潜腻、誤匹配的這些問題