• 【面试】商汤科技


    第一轮面试分为2次,流程大致都是如下:
    自我介绍+项目介绍+项目深挖和项目中相关基础知识+算法题+数学题。
    感受就是面试官都很专业,而且面试完可以给我原来的项目带来更深的思考和更多的想法,这回大论文有救了!
    有意义的问题总结如下。

    项目相关

    我的多任务CNN模型是共享卷积层+分支结构。但是我的训练是单张图片输入,不存在以下问题,下面的问题都是为了考察我假设出来的。
    关于多任务CNN的更多任务,可以参考这篇文章《共享相关任务表征,一文读懂深度神经网络多任务学习》

    1. 多任务CNN训练过程中不同任务的数据输入顺序是怎样的?一个mini-batch中的输入是怎样组成的?
      这里有提到应该把主要任务放在每个epoch中的最后一步训练,类似于前面用辅助任务做预训练,后面再finetune的思想。

    2. 不同任务的损失是如何?
      带权重求和。

    3. 那么在反向传播时同一个mini-batch在共享卷积层的末端是否需要除以batch size?为什么?

    4. 详细介绍一下Batch Normalization。
      关于Batch Norm,目前看到最好的文章介绍时《Batch Normalization 学习笔记》
      面试官还会反复问我BN的处理是否在通道层面

    另一个任务是关于微表情的

    1. TIM是什么?什么是视频插值?
      TIM: Temporal Interpolation Model,Github源码

    2. 光流图如何计算的?光流图应变如何计算的?

    3. 如何利用OpenCV实现的人脸对齐?

    4. 介绍一下triple loss

    算法题

    1. 无序数组中,只有1个数重复了奇数次,其他数都重复了偶数次,如何找到?
      从头到尾亦或,就能找到。
      【附加题】是否需要以什么样的顺序?
      不需要,亦或满足交换律和结合律。

    2. 无序数组中,只有2个数重复了奇数次,其他数都重复了偶数次,如何找到?
      先亦或一遍得到一个二进制结果S,然后S中为1的位数,只需要知道某一位为1的位数k(如 00101100,其中1对应的位数分别为2、3、5,所以k可以取2或者3,或者5),然后将S与数组中第k位为1的数进行异或,异或结果就是a或b中的一个,然后用S异或,就可以求出另外一个。

    3. 两个栈实现队列,并计算时间和空间复杂度。
      假设有栈A和栈B,push操作都在A,pop操作都在B,pop的时候判断栈B是否为空——不为空就直接pop栈B的栈顶元素,为空就把栈A所有元素放入栈B再pop栈B的栈顶元素。

    C++

    1. 谈谈什么是虚函数

    2. 纯虚函数和虚函数的区别?在内存上有何区别?

    智力推理题

    1. 在没有能量损失的理想台球桌上任意击球,满足什么条件下球必然进洞?
      这是一道有理数多边形的问题,有一则光照问题视频来介绍这个问题。
      至于这题的解答,可以参照知乎上这个解答《理想情況下,对于任意一种台球布局,是否存在一个击球方案,一杆就能使所有球进洞》

    参考

    1. 共享相关任务表征,一文读懂深度神经网络多任务学习. https://www.jiqizhixin.com/articles/2017-06-23-5
    2. Batch Normalization 学习笔记. https://blog.csdn.net/leayc/article/details/77645877
      3 The Illumination Problem - Numberphile. https://www.youtube.com/watch?v=xhj5er1k6GQ&feature=youtu.be
    3. 理想情況下,对于任意一种台球布局,是否存在一个击球方案,一杆就能使所有球进洞. https://www.zhihu.com/question/55327433
  • 相关阅读:
    剩下的树
    守形数
    小白鼠排队(map容器插入数据的四种方法)
    字母统计
    与7无关的数
    ZOJ
    基于js的CURD插件
    API验证插件
    Django之权限管理插件
    Django之信号和序列化
  • 原文地址:https://www.cnblogs.com/lvjincheng/p/11378955.html
Copyright © 2020-2023  润新知