2018年6月13日,网易北京研发中心-网易传媒部门深度学习算法实习生面试总结
1. 问了一下能实习多久,以及实习开始的时间。
2. 问了一下目前去除水印的一些工作。尤其是自己参与的项目,问的特别细致,每一个实现的功能用到的函数都会问到。这一点问的还是挺多的,提问花费的时间也比较久。
3. 详细介绍LSTM的内部结构以及公式推导。包括3个控制门和一个细胞更新的结构图和公式推导。就是详细描述下面这幅图片,以及每一步的公式。
4. 详细询问了如何把LSTM的ht-1,Xt编码编程向量输入到神经网络中?
5. 假如现在有一个股票的价格是50,如何把股票价格50这个数据进行编码成向量,然后输入到网络中?或者说:人类看到能理解的信息是股价50,如何把这个数据输入到网络中?
6. 一道算法题:(现场手写代码)
给你10-99的所有两位数,找到所有的两位数能整除7,并把这些数放到一个数组中返回。
我的方法:
import numpy as np def findArray(): array = [] for i in range(10,100): if i%7==0: array.append(i) return np.array(array) print(findArray())
我的方法时间复杂度为:O(n)。
面试官:我目前让你找两位数中能整除7的数,你的算法是要遍历90个数;如果我让你找出三位数中能整除7的数,你的算法要遍历900个数;如果是找四位数中能整除7的数,你的算法要遍历9000个数;如果是找五位数中能整除7的数,你的算法是不是时间复杂度越来越高呢!想办法优化一下!
面试官的提示:你找的这个数组里面的所有数,都能够整除7。
思路:比如两位数,你可以从10找到14确定最小商为2,然后从100找到98确定最大的商为14,然后从2到14一次乘以7,可以优化时间复杂度。
def findArray(): array = [] for i in range(10,100): if i%7==0: low = int(i/7) break for j in range(10,100)[::-1]: if j%7==0: high = int(j/7) break for k in range(low,high+1): array.append(k*7) return np.array(array) print(findArray())
7. 假如你自己写了一个类,你想在另一个类中使用这个类,要如何做?
问:python 如何在一个.py文件中调用另一个.py文件的类 如果是在同一个 module中(也就是同一个py 文件里),直接用就可以 如果在不同的module里,例如 a.py里有 class A: b.py 里有 class B: 如果你要在class B里用class A 需要在 b.py的开头写上 from a import A #mymodel.py import matplotlib.pyplot as plt class test(object): num = [] def __init__(self, _list): super(test, self).__init__() self.num = _list def prt(self): print(self.num) def tplt(self): plt.plot(self.num) plt.show() #mian.py from mymodel import test mylist= [1,2,3] a = test(mylist) a.prt() a.tplt()
8. 如果你自己重写了Python里的内置类str里的strip()方法,Python是优先使用重写方法还是内置的方法?Python是如何识别你重写的还是系统内置的?
(1)如何重写:
class laplace(str): def strip(self, chars=None, string='sorry'): return 'something %s' % string x = laplace() print x.strip()
(2)Python优先调用重写的方法。
(3)Python是如何识别你重写的还是系统内置的?不懂这个问题到底在问啥。。。
9. Python的扫包机制?
----A包
----B包
----C包
----test.py
----D包
----MyLocation.py
我当前在MyLocation.py文件中,想要用test.py文件里的函数,Python是如何找到test.py文件里的函数的?
参考这篇文章:https://www.cnblogs.com/paomaliuju/p/5167434.html
10. Python编译器如何识别不同的Python工程?
新建一个Python工程的时候,编译器会生成这个工程的配置文件和一些其他的文件,这些文件标识了是不同的Python工程。
共同学习,写下你的评论
评论加载中...
作者其他优质文章