格物钛:2021秋招 Python开发岗(偏算法,实习)

格物钛:2021秋招 Python开发岗(偏算法,实习)

视频面。

问题

  • 项目相关

  • Python中装饰器的本质

    装饰器的本质是一个接收一个方法为参数的方法,在该方法中定义一个包装后的方法,对被装饰方法执行前、后进行额外的处理。

    如:

    from functools import wraps
    # define the decorator
    def f(func):
      @wraps(func)
      def g():
          print('before')
            func()
            print('after')
      return g
    
    @f
    def func():
        print('test')
        
    func()
    

    在装饰器f中定义了包装后的方法g,在g中定义被包装方法func执行前后的相关处理(输出'before''after'),在使用@ffunc进行装饰后,实际运行的输出为:

    before
    test
    after

  • __new____init__的执行顺序与区别

    __new__方法用于创建类的对象,是严格意义上的构造函数;

    __init__方法用于对__new__创建的对象进行初始化,如设置对象的属性等。

    • 在执行顺序上,先执行__new__再执行__init__

    • 区别方面__init__的第一个参数是self,而__new__第一个参数是cls类型,这也反映了前者对已建立的对象进行属性的设置,后者通过给定的类型进行实例对象的构造。

  • 如何重载加法运算符

    重写__add__方法。

  • 介绍python中的基本数据类型。

    intfloatstrdictsetlistmapcomplex(复数)。

  • 深度学习中如何处理过拟合

    • 从网络结构层次的角度,可以采用残差连接的方式,提供降低模型复杂度的可能;

    • 从正向传播的角度,可以使用Dropout的方式,每次丢弃一部分特征,防止参数过分依赖训练数据,增加参数对数据集的泛化能力;

    • 从反向传播的角度,可以通过正则化的方式,每一次计算loss时增加一个参数相关的惩罚项,缩放参数值使输出的区间更为稳定合理;

    • 从数据处理的角度,通过进行shuffle打乱数据的顺序、对数据进行增广(增加噪音、变换等),避免参数对数据的依赖,提高泛化能力;

    • 从训练的角度,可以考虑使用EarlyStopping在模型持续优化一定Epoch后便提前停止训练;

  • PyTorch中继承torch.utils.data.Dataset主要需要重写的方法

    最重要的是重写__getitem__(self, index)方法,用于获取指定位置的数据样本。

  • 深度学习中常用的正则化有哪些

    常用的正则化方式一般有两种: L1L2 正则化,又分别称为 Lasso 回归和 Ridge 回归。

    此外,也有相关的正则化层,用于对神经网络层输入的特征进行正则化,如LayerNormBatchNorm等。

  • L1正则化与L2正则化的区别

    L1正则化与L2正则化都是在计算损失反向传播的基础上额外增加一个和参数有关的惩罚项

    公式:对于已经计算的损失loss以、参数w以及正则项系数 \alpha (手动设置),有:
    L_1 = \alpha\sum_i|w_i| \\ L_2 = \alpha\sum_i w_i^2
    L1对参数取绝对值之和,L2则是平方和。

    这个差异最形象的解释是,对两个参数的情况下绘制等值线,其最优参数在正则项曲线与损失曲线的交点处(带约束的优化),而L1的正则项曲线严格意义上并不是“曲线”而是一个“菱形”,而L2的曲线则是一个圆形(图片见相关参考),因此:

    • L1正则的优化结果容易在坐标轴上与损失曲线相交(部分参数为0的情况),得到使模型更加稀疏(降低了模型的复杂度)的效果,因此在一定程度上也能防止过拟合;
    • L2正则的优化结果容易在非坐标轴上与损失曲线相交,使得各个参数均缩放到一个较小的值,这样模型即使输入波动较大其输出也会稳定在一定的、比较合理范围内,从而有更强的抗干扰能力,达到防止过拟合的效果。

    参考:

  • 一行代码计算 [0,n) 中的奇数平方和。

    sum([i**2 for i in range(n) if i % 2 == 1])

  • 编程题:合并两个有序序列

    • 解法:
      1. 创建一个新的list,遍历两个有序序列并按序将其中的数放到新建的list中;
      2. 将较短的序列插入到较长的序列中,建议从后往前遍历实现,不容易出现插入下标的问题。
    • 讨论:使用方法1时如果一个序列已经处理完了,剩下的一个序列如何处理效率更高:
      • 使用for或者while直接遍历复杂度是 O(n)
      • 对剩下的序列切片并使用list.extend或者+进行合并,虽然代码层面没有循环了,但是切片操作本身返回的也是一个副本,内部还是有一个 O(n) 的操作。
      • 最优的操作应该是第2种解法。
  • 参数传递与深浅拷贝

    判断如下两个代码的输出并解释:

    def f1(l: list):
        l = [4,5,6]
    a = [1,2,3]
    f1(a)
    print(a)
    

    这里f1传入的l指向的是a的一个副本,a内部只包含基本数据类型,在方法中修改的是l所指向的位置,并不影响a,输出[1,2,3]

    def f2(l: list):
        l2 = l.copy()
        l2[0][1] = 22
    a = [[1,2,3], 2]
    f2(a)
    print(a)
    

    f2中传入的也是a的一个副本,但是由于a中包含了其他对象,这个副本本身是浅拷贝的,且在函数内部也进行了一次浅拷贝,即l[0]l2[0]都指向a[0],所以这里的修改是会影响到a的,输出[[1,22,3],2]

总结

面试涉及到的问题主要包含如下方面:

  • Python基础、底层;
  • 深度学习基础、优化技巧;
  • 算法设计与问题分析;

均需要继续加强知识积累。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,377评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,390评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,967评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,344评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,441评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,492评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,497评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,274评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,732评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,008评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,184评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,837评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,520评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,156评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,407评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,056评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,074评论 2 352

推荐阅读更多精彩内容