招银网科算法面试题9道|含解析
共 2574字,需浏览 6分钟
·
2023-10-23 14:25
10本七月在线内部电子书在文末,自取~
公众号福利
👉回复【100题】领取《名企AI面试100题》PDF
👉回复【干货资料】领取NLP、CV、ML等AI方向干货资料
Python迭代器是一个对象,它允许你逐个访问一个序列中的元素,而不需要提前知道整个序列的大小。迭代器由两个主要方法组成:__iter__()和__next__()。__iter__()方法返回迭代器对象自身,而__next__()方法返回序列中的下一个元素。当没有元素可迭代时,__next__()方法会引发StopIteration异常。
问题2:介绍下yield
yield是一个关键字,用于定义生成器函数。生成器函数在每次调用时不会执行完整的函数体,而是在遇到yield语句时暂停并将值返回给调用者。这个生成器函数的状态会被保留,以便在下次调用时继续执行。这种方法可以在迭代大型数据集或计算无限序列,占用较少的内存。
问题3:介绍下with
with是Python的上下文管理器,用于处理资源的分配和释放,如文件、数据库连接等。通过使用with语句,你可以确保在块内退出时资源会被自动关闭或释放,而无需手动处理异常或资源管理。
深拷贝(deep copy)会复制对象及其内部包含的所有对象,创建一个完全独立的副本。
浅拷贝(shallow copy)只会复制对象本身,而不会递归复制内部包含的对象。内部对象的引用仍然指向原始对象的内部对象。
问题5:深度学习样本不均衡怎样处理
处理不均衡样本问题的方法包括重采样、数据增强、使用不同的损失函数、生成合成样本、调整类别权重等。具体的方法需要根据问题和数据集的特点而定。
问题6:过拟合怎样处理
处理过拟合问题的方法包括增加更多的训练数据、减小模型复杂度、使用正则化技巧(如L1和L2正则化)、使用早停策略、数据增强等。
问题7:L1和L2正则化
L1正则化:通过在损失函数中添加权重的绝对值之和,鼓励模型的权重趋向于稀疏,促使一些特征的权重变为零,从而实现特征选择。
L2正则化:通过在损失函数中添加权重的平方和,鼓励模型的权重趋向于较小的值,以防止过拟合。
问题8:BN层放在什么位置
批量归一化(Batch Normalization,BN)通常在神经网络的每个隐藏层的激活函数之前应用。这有助于加速训练过程并提高模型的稳定性,使其更容易收敛到较好的结果。
问题9:10亿个参数的模型,部署后占用多大显存?
目前模型的参数绝大多数都是float32类型, 占用4个字节。所以一个粗略的计算方法就是,每10亿个参数,占用约4G显存(实际应该是10^9*4/1024/1024/1024=3.725G)。
免费送
扫码回复【999】免费领10本电子书
(或找七月在线其他老师领取)
点击“阅读原文”抢宠粉福利~