科大讯飞提前批算法工程师面经(计算机视觉方向)

1、Pytorch和Tensorflow的区别?

    图创建

    创建和运行计算图可能是两个框架最不同的地方。

    在pyTorch中,图结构是动态的,这意味着图在运行时构建。

    而在TensorFlow中,图结构是静态的,这意味着图先被“编译”然后再运行。

    pyTorch中简单的图结构更容易理解,更重要的是,还更容易调试。调试pyTorch代码就像调试Python代码一样。你可以使用pdb并在任何地方设置断点。调试tensorFlow代码可不容易。要么得从会话请求要检查的变量,要么学会使用tensorFlow的调试器。

    灵活性

    pytorch:动态计算图,数据参数在CPU与GPU之间迁移十分灵活,调试简便;

    tensorflow:静态计算图,数据参数在CPU与GPU之间迁移麻烦,调试麻烦。

    设备管理

    pytorch:需要明确启用的设备

    tensorflow:不需要手动调整,简单

2、leetcode爬楼梯(dp,递归等方法)

    递归解法:

class Solution:
    def climbStairs(self, n: int) -> int:
        if n == 1:
            return 1
        elif n == 2:
            return 2
        else:
            s1 = self.climbStairs(n-1)
            s2 = self.climbStairs(n-2)
            return s1+s2

    动态规划解法:

class Solution:
    def climbStairs(self, n: int) -> int:
        nums = [0,1,2]
        if n == 1:
            return nums[1]
        elif n == 2:
            return nums[2]
        else:
            for i in range(3,n+1):
                nums.append(nums[i-1] + nums[i-2])
        return nums[n]

3、torch.eval()的作用

    对BN的影响:

    对于BN,训练时通常采用mini-batch,所以每一批中的mean和std大致是相同的;而测试阶段往往是单个图像的输入,不存在mini-batch的概念。所以将model改为eval模式后,BN的参数固定,并采用之前训练好的全局的mean和std;总结就是使用全局固定的BN。

    对dropout的影响:

    训练阶段,隐含层神经元先乘概率P,再进行激活;而测试阶段,神经元先激活,每个隐含层神经元的输出再乘概率P,总结来说就是顺序不同!

4、PCA是什么?实现过程是什么,意义是什么?

    主成分分析 (PCA, principal component analysis)是一种数学降维方法, 利用正交变换 (orthogonal transformation)把一系列可能线性相关的变量转换为一组线性不相关的新变量,也称为主成分,从而利用新变量在更小的维度下展示数据的特征。

    实现过程:

    一种是基于特征值分解协方差矩阵实现PCA算法,一种是基于SVD分解协方差矩阵实现PCA算法。

    意义:

    使得数据集更易使用;降低算法的计算开销;去除噪声;使得结果容易理解。

5、简述K-means.

    K-means算法的基本思想是:以空间中k个点为中心进行聚类,对最靠近他们的对象归类。通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果。

    假设要把样本集分为k个类别,算法描述如下:

    (1)适当选择k个类的初始中心,最初一般为随机选取;

    (2)在每次迭代中,对任意一个样本,分别求其到k个中心的欧式距离,将该样本归到距离最短的中心所在的类;

    (3)利用均值方法更新该k个类的中心的值;

    (4)对于所有的k个聚类中心,重复(2)(3),类的中心值的移动距离满足一定条件时,则迭代结束,完成分类。

    Kmeans聚类算法原理简单,效果也依赖于k值和类中初始点的选择。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七月在线

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值