BIGO面经20190902
面试的岗位:AI视觉算法工程师
面试官:先进行一下自我介绍
我:自我介绍。。。
面试官:看你在公司做过xxx,能简单介绍一下吗?
我:介绍公司工作内容。。。
面试官:好,接下来问你一些c++的内容吧。一个结构体中,有int数据两个,char数据一个,那么这个结构体存储的时候占用多大的内存?
我:应该是12个字节,char会自动对齐到长的数据类型。
面试官:嗯,那你了解左值和右值吗?
我:emmm,这个好像是c++新加的特性,通常等号的左边需要是一个变量,而在新的属性里,等号左边可以为一个式子,这个式子可以等价于一个引用。。。
面试官:等等,你这里说的是左值引用的相关内容,我想问的是左值和右值。
我:抱歉,我理解错了。。。这块不是很了解。(答案应该是左值通常是地址,右值为地址所存的数值数据)
面试官:嗯,好的,那问问你python的吧。闭包你知道吗?
我:不清楚。(闭包是指函数内部嵌套函数,内部的函数可以改变外部函数的值,关键字nonlocal)
面试官:换一个问题,在python中进程和线程有什么不同?
我:线程在某种程度上可以认为是进程的再一步分割,进程之间资源没有共享,线程之间可以通过信号量进行资源共享。他们的目的都是为了实现并发。
面试官:嗯,那进程之间有哪些通信方式?
我:emmm,您是指同步这种吗?还是管道?
面试官:同步是个更大的概念,我问的是管道这种。
我:好的,我想想。。。还有消息队列,emmm,有点忘记了。。。(还有信号量、共享存储、Socket套接字等)
面试官:嗯,看你还会linux,你用过shell吗?
我:用过,最近几个月在公司需要用。
面试官:假设有一个目录,里面有很多子目录,子目录里可能还有子目录,然后你如何通过一条命令将这里面的所有某个后缀名的文件拷贝到另一个目录里?
我:应该可以用带*的命令实现。
面试官:具体怎么样呢?
我:我写一下。。。大概是这样
cp */*/*.mp4 ortherdir
面试官:嗯,你这里相当于强制限制了必须有两层的关系,但是可能存在只有一层的,这种需要怎么处理呢?
我:那可以考虑通配符的形式,正则表达式。
面试官:具体是什么样的呢?
我:最后保持“.mp4”,然后前面的正则表达式为零个或者多个“/”。
面试官:嗯好,那接下来问问你深度学习相关的内容吧。在训练过程中,如何防止过拟合?
我:emmm,首先可以增大数据量,数据量足够多就会有效一直过拟合;然后如果存在全联接层的话可以采用dropout;还有就是可以采用早停止的方法,就是认为训练的足够了,就人为停止训练。
面试官:那batchnorm可以防止过拟合吗?
我:emmm,batchnorm实际上是进行了归一化,相当于添加了额外的激活层,是能够抑制过拟合的。
面试官:那么正则化肯定也是可以的了?
我:嗯,是的。
面试官:好,那你知道在训练过程中,batchnorm需要什么参数吗?
我:需要在训练的时候给定通道数。
面试官:我是想问,batchnorm有什么需要训练的参数吗,可以理解为超参数。
我:emmm,应该会有一个偏差,实际上就是数据的期望或者说均值;还会有一个方差,用来衡量离散程度。
面试官:嗯,那么在训练和判别的时候需要对batchnorm做什么操作?
我:您这个说的判别是指什么?
面试官:就是inference的时候。
我:哦哦,就是在训练的时候,batchnorm是随着训练数据进行变化的,然后在inference的时候将其固定不变。
面试官:嗯,好的,今天的面试到此结束!
我:好的,谢谢!
总结
个人感觉整体面试一般,底层的基础掌握的不够扎实,对于一些细节还有待提高!没有算法题,估计是前面答的不够好。
原来当晚就给我发了拒信。。。打扰了。