Skip to content

Latest commit

 

History

History
67 lines (33 loc) · 2.57 KB

面试经.md

File metadata and controls

67 lines (33 loc) · 2.57 KB

面试经

一、Python基础篇

1. python的内存管理是怎么实现的?

引用计数、垃圾回收、内存池机制

  • 引用计数:每个对象都有指向该对象的引用总数
  • 垃圾回收:当Python的某个对象的引用计数降为0时,说明没有任何引用指向该对象,该对象就成为要被回收的垃圾。
  • 内存池机制:Python中有分为大内存和小内存(256K为界限分大小内存): 1、大内存使用malloc进行分配;2、小内存使用内存池进行分配。

2. python中复制一个对象/浅拷贝和深拷贝的区别

  • 浅拷贝:id相同,指向同一个对象,对于可变对象,值改变时会同时改变,对于不可变对象,当值发生改变时则会重新分配空间。

  • 深拷贝:id不同,在新开辟的内存地址中存放新的对象。

通常来讲不可变元素包含:

int, float, complex, long, str, unicode, tuple(特别注意str)

3. 迭代器和生成器的区别

img

  • 可迭代对象包含迭代器。

  • 如果一个对象拥有__iter__方法,其是可迭代对象;如果一个对象拥有next方法,其是迭代器。

  • 定义可迭代对象,必须实现__iter__方法;定义迭代器,必须实现__iter__next方法。

  • 生成器本质上就是一个函数,它记住了上一次返回时在函数体中的位置。对生成器函数的第二次(或第n次)调用,跳转到函数上一次挂起的位置。而且记录了程序执行的上下文。生成器不仅“记住”了它的数据状态,生成还记住了程序执行的位置。

4. 快速排序/分治/二分排序

  • 快速排序算法:首先选取一个分界值,通过分界值将大于或等于的数据集中到数组右边,小于分界值的数据集中在左边,然后左边和右边再独立排序,形成一个递归逻辑直到左右两边完全排序。

二、CV基础篇

1. Canny算法

  • 高斯滤波平滑图像,去除噪声;

  • 求取图像的梯度和梯度方向;

  • NMS非极大值抑制算法剔除边界中多余的像素;

  • 双门限法确定可能存在的边界;

  • 强相关和弱相关,强相关一般是与强边界相连,弱相关则有可能是因为噪声原因。

2. 霍夫直线运算

三、机器学习篇

1. SVM原理

四、深度学习篇

1. 介绍一下卷积神经网络

2. Inception V3的block结构