Fork me on GitHub

计算机视觉实习面试

  • 自我介绍

首先是自我介绍,大致是以前做过什么,现在在做什么,研究方向是什么

  • Transformer对于图片的处理流程、它的变种一般都有什么、如何计算Attention

  参考博客:"未来"的经典之作ViT:transformer is all you need! - 知乎 (zhihu.com)

对于图片的处理流程一般是将图片划分为固定大小的patching,之后对patching做一个线性变换得到embdding  patching。除此之外还要对变换之后的patching加上一个position encoding,原因是如果不给模型提供patch的位置信息,那么模型就需要通过patchs的语义来学习拼图,这就额外增加了学习成本。不同于卷积中使用pooling来获取最后的image feature,Transformer加入了一个类别编码(cls_token)来输出最后的特征,所以encoder部分的输入一般是encoder的步长+1.

 

 

 

 如果[公式]都是从一个包含[公式]个向量的sequence([公式])通过线性变换得到:[公式]那么此时就变成了self-attention,这个时候就有[公式]个(key,value)对,那么[公式]

变种有Swin Transformer等,没咋了解。

  • ResNet瓶颈结构可以实现一下吗、残差结构怎么实现的,为什么要设置残差结构

参考博客:ResNet之残差结构的理解_小哈蒙德的博客-CSDN博客_残差学习的结构

 

 

 

左图是没有bottleneck模块,右图是使用了bottleneck模块。

使用 1×1的网络结构很方便改变维度。灵活设计网络,并且减小计算量。

残差结构计算过程:输入X,中间层为F(X),融合之后输出H(X) = F(X) + X

为什么要设置残差结构?首先要明白几个概念:过拟合,梯度消失/爆炸,网络退化

 

 

   过拟合:在训练集上表现很好,在测试集上表现很差

  梯度爆炸/消失:我们发现很深的网络层,由于参数初始化一般更靠近0,这样在训练的过程中更新浅层网络的参数时,很容易随着网络的深入而导致梯度消失,浅层的参数无法更新(反向传播公式中连乘太      多)。

  网络退化:冗余层过多,导致在训练集上无法很好的训练网络

  H(X) = F(X) + X,F(X)为残差项,通过学习残差F(x)=0来让该层网络恒等映射上一层的输入,使得有了这些冗余层的网络效果与没有这些冗余层的网络效果相同,这样很大程度上解决了网络的退化问题,也使得网络可以更深。

  • 数据增强的常见方法(这个是因为我说我以前采集过数据,处理过数据)

参考博客:【技术综述】深度学习中的数据增强方法都有哪些? - 知乎 (zhihu.com)

  数据增强分为有监督数据增强和无监督数据增强,有监督数据增强分为单样本数据增强和多样本数据增强,无监督的数据增强分为生成新的数据和学习增强策略

  

 

 

 

  • Python相比于C++的深拷贝、浅拷贝

  深拷贝就是把要拷贝的对象整体拷贝出来,开辟一个空间进行存储,而浅拷贝对对象复制一份,而内部的子对象直接进行引用,相当于加了一个链接。.copy()就是实现浅拷贝,

  • Python中的迭代器、生成器、装饰器

  参考博客:python迭代器、生成器和装饰器_sunchengquan的博客-CSDN博客_python装饰器和生成器

  生成器:例如在生成列表时生成一个包含100万个元素的列表占用很大,而在Python中,有一边循环一边计算的机制,叫做生成器(generator),可以使用.next访问,但一般使用for循环,因为生成器也是      可迭代对象。

  yield关键字:生成器在实例化时并不会被执行,而是等待调用__next__()方法时才开始运行,并且当程序运行完yield部分的代码后会保持当前状态并停止运行,等待下一次遍历时才恢复运行。

  简而言之就是,函数是顺序执行,遇到return会返回,而generator在每次调用next()时执行,遇到yield语句返回,并且再次执行时从上次返回的yield语句地方继续执行

  迭代器:

  可以直接作用于for循环的数据类型有以下几种:一类是集合数据类型,如list,tuple,dict,set,str等;一类是generator ,包括生成器和带yeild的generator function

  这些可以 直接作用于for循环的对象统称为可迭代对象:Iterable

  可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator

  装饰器:本质是函数(装饰其他函数)为其他函数添加附加功能 (略)

  • 列表和元组的区别

  列表可以修改里面存储的数据,元组一经创造无法修改。元组的优势是占用空间少,

  • SIFT算子

  • 什么是光流图像,如何计算

计算机视觉--光流法(optical flow)简介_T-Jhon的博客-CSDN博客_光流法

  • 颜色空间都有哪些,HSV空间公式

HSV色彩空间_wudaijun的博客-CSDN博客_hsv颜色空间

  • 深度可分离卷积

  • Efficient-Net

  • Mobile-Net

  • BN层?为什么使用BN层?BN层的公式是什么?
  • pytorch中的交叉熵损失函数的细节实现
  • 什么是梯度下降,常见的梯度下降算法有哪些?
  • 如何调参?(常见的调参策略)

综合评价:需要扩展一下广度,例如问目标检测、图像分类、分割等东西的时候一问三不知,除此之外自己的工作要很熟悉,一般都是通过聊当前的工作来展开话题的。

 

posted @ 2022-03-14 16:16  Lurchy  阅读(117)  评论(0编辑  收藏  举报