复星杏脉算法面经2024年5月16日面试

复星杏脉算法面经2024年5月

  • 面试记录:3个部分1. 自己介绍 2. 问八股 3.代码题
    • 先自我介绍
    • 20分钟问问题
      • 1. 梯度爆炸怎么解决,三个解决方案:梯度裁剪(Gradient Clipping)正则化(Regularization)调整激活函数
      • 2. batch norm说一下 里面的缩放因子 为什么需要 shift
    • 二分类任务的评价指标 仔细讲讲
    • 如何缓解样本不均的二分类问题
    • 其中Adan优化器比SGD优化器优点是什么,优化器的选择
    • 有没有用过分布式训练dp和ddp,dp和ddp哪个更好
  • 代码题15分钟但是很简单
  • 解题思路一:

面试记录:3个部分1. 自己介绍 2. 问八股 3.代码题

1一小时

先自我介绍

再20分钟简历
然后问了其他自己做的实习论文
怎么做的 细细讲

20分钟问问题

1. 梯度爆炸怎么解决,三个解决方案:梯度裁剪(Gradient Clipping)正则化(Regularization)调整激活函数

梯度爆炸(Gradient Explosion)是指在训练深度神经网络时,梯度值在反向传播过程中变得非常大,导致模型参数更新过大,进而导致模型不稳定或无法收敛。以下是常用的三个解决梯度爆炸问题的方案:

  1. 梯度裁剪(Gradient Clipping):
    梯度裁剪是直接限制梯度的大小,当梯度的范数超过预设的阈值时,将其缩放到该阈值范围内。这样可以防止梯度变得过大。
torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm=1.0)

在上面的代码中,max_norm 参数设置了梯度的最大范数,当梯度的范数超过这个值时,会被裁剪到这个值。

  1. 正则化(Regularization):
    正则化是一种在损失函数中添加额外项以防止过拟合的方法,常见的有 L1 和 L2 正则化。正则化项能够限制权重的大小,从而间接减小梯度的爆炸。
  • L2 正则化(也称为权重衰减,Weight Decay):
optimizer = torch.optim.SGD(model.parameters(), lr=0.01, weight_decay=1e-4)

在上面的代码中,weight_decay 参数即为 L2 正则化项的系数。

  1. 调整激活函数:
    选择合适的激活函数可以帮助减小梯度爆炸的风险。某些激活函数如 ReLU 和 Leaky ReLU 相较于 sigmoid 和 tanh 更能减轻梯度爆炸问题,因为它们的梯度在正区间不会饱和。
  • ReLU(Rectified Linear Unit):
import torch.nn.functional as Fdef forward(self, x):x = F.relu(self.fc1(x))return x
  • Leaky ReLU:
import torch.nn.functional as Fdef forward(self, x):x = F.leaky_relu(self.fc1(x), negative_slope=0.01)return x

以上三种方法分别从梯度约束、模型正则化和激活函数选择三个不同角度来缓解梯度爆炸的问题,在实际应用中可以根据具体情况选择合适的方法或组合使用多种方法。

2. batch norm说一下 里面的缩放因子 为什么需要 shift

在这里插入图片描述

二分类任务的评价指标 仔细讲讲

在这里插入图片描述
在这里插入图片描述

如何缓解样本不均的二分类问题

在这里插入图片描述

其中Adan优化器比SGD优化器优点是什么,优化器的选择

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Adam及其变种:结合动量和自适应学习率,快速稳定收敛,适用于大多数深度学习任务。

AdamW 是 Adam 优化器的改进版本,旨在解决 Adam 优化器在某些情况下会导致权重衰减(weight decay)效果不佳的问题。AdamW 是由 Ilya Loshchilov 和 Frank Hutter 提出的,并在他们的论文《Decoupled Weight Decay Regularization》中详细介绍。
在这里插入图片描述
在这里插入图片描述

AdamW 是一种改进的 Adam 优化器,通过将权重衰减与梯度更新分离,提供了更好的正则化效果和更快的收敛速度。它在许多深度学习任务中表现优异,是现代深度学习中常用的优化器之一。

有没有用过分布式训练dp和ddp,dp和ddp哪个更好

在这里插入图片描述

代码题15分钟但是很简单

Q1: Compression
e.g, input: aabbbdeffffww
output aa3bde4fww
连续大于等于三个相同的character用“数量+ character”表示,otherwise照常输出

解题思路一:

s = input()
result = ""
i = 0
while i < len(s) - 2:c = s[i]if c == s[i + 1] == s[i + 2]:count = 3while i + count < len(s) and s[i + count] == c:count += 1result += str(count)result += ci += countelse:result += ci += 1
if s[-1] != s[-3]:result += s[-2]result += s[-1]
print(result)

时间复杂度:O(n)
空间复杂度:O(1)


创作不易,观众老爷们请留步… 动起可爱的小手,点个赞再走呗 (๑◕ܫ←๑)
欢迎大家关注笔者,你的关注是我持续更博的最大动力


原创文章,转载告知,盗版必究



在这里插入图片描述


在这里插入图片描述
♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/28508.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C11与C++11关于Atomic原子类型的异同

"The C11 atomics were almost copynpasted from C11. All the work was done for C, and C (sensibly) incorporated it wholesale." 上面这句话源自&#xff1a;C11 atomic variables and the kernel [LWN.net] 翻译过来就是&#xff1a; "C11 中的原子操作…

HTML 颜色名

HTML 颜色名 HTML 颜色名是一组预定义的颜色&#xff0c;可以在 HTML 和 CSS 中使用。这些颜色名易于记忆&#xff0c;方便开发者快速选择和使用。本文将详细介绍 HTML 颜色名&#xff0c;包括它们的用途、优点以及如何在网页设计中使用它们。 HTML 颜色名的用途 HTML 颜色名…

熱門開源項目推薦

熱門開源項目推薦&#xff1a;探索未來的技術前沿 開源軟件的興起為科技領域帶來了革命性的變化&#xff0c;不僅促進了技術的發展&#xff0c;還創造了一個開放和協作的環境&#xff0c;讓全球的開發者可以共同參與、創新和改進。近年來&#xff0c;開源大模型成為了技術社區…

时政|连续高温

危害 会对人的健康乃至生命安全产生严重影响&#xff0c;近年来&#xff0c;几乎每年都有因热致死的病例面对高温天气&#xff0c;不能仅仅止于调侃“天热”&#xff0c;止于变着花样表达自己的感受&#xff0c;还是要提高警惕&#xff0c;重视并防范高温导致的中暑、热痉挛、…

nginx+tomcat+nfs →web集群部署

nginxtomcatnfs →web集群部署 一.安装前介绍 NGINX是一个高性能的Web服务器和反向代理服务器。它能够处理静态内容&#xff0c;缓存请求结果&#xff0c;以及将请求转发给后端服务器。通过反向代理&#xff0c;NGINX能够实现请求的负载均衡、安全性增强、SSL加密等功能。此外…

Linux中文件查找相关命令比较

Linux中与文件定位的命令有find、locate、whereis、which&#xff0c;type。 一、find find命令最强&#xff0c;能搜索各种场景下的文件&#xff0c;需要配合相关参数&#xff0c;搜索速度慢。在文件系统中递归查找文件。 find /path/to/search -name "filename"…

第67集《摄大乘论》

《摄大乘论》&#xff0c;和尚尼慈悲、诸位法师、诸位居士&#xff0c;阿弥陀佛&#xff01;(阿弥陀佛&#xff01;)请大家打开《讲义》第二二六页&#xff0c;庚十、业。 这一大科是讲到法身的功德。我们从前面的学习&#xff0c;可以把法身的功德分两部分来作个总结&#xf…

位运算算法:编程世界中的魔法符号

✨✨✨学习的道路很枯燥&#xff0c;希望我们能并肩走下来! 文章目录 目录 文章目录 前言 一. 常见位运算总结 二、常见位运算题目 2.1 位1的个数 2.2 比特数记位&#xff08;典型dp&#xff09; 2.3 汉明距离 2.4 只出现一次的数字&#xff08;1&#xff09; 2.5 只出…

【JVM】CMS 收集器的垃圾收集过程

CMS&#xff08;Concurrent Mark-Sweep&#xff09;收集器是Java虚拟机&#xff08;JVM&#xff09;中的一种垃圾收集器&#xff0c;它主要面向老年代&#xff08;Old Generation&#xff09;的垃圾回收。CMS收集器的目标是最小化垃圾收集的停顿时间&#xff0c;从而提高应用程…

OpenGL系列(六)变换

在三角形和纹理贴图示例中&#xff0c;顶点使用的是归一化设备坐标&#xff0c;在该坐标系下&#xff0c;顶点的每个轴的取值为-1到1&#xff0c;超出范围的顶点不可见。 基于归一化设备坐标的物体的形状随着设备的大小变换而变化&#xff0c;这里产生的第一个问题是&#xff0…

三极管的理解

三极管的放大使用 基极集电极之间可理解为电子扩展 电化学效应&#xff1b;产生载流子多少&#xff0c;从而射集间而流动大小 电化学效应&#xff0c;电子漂移现象&#xff0c;基极与集电极的电流的作用在于产生载流子 电流的流动&#xff0c;需要载流子&#xff0c;从而基极…

【教程】服务器数据一键备份脚本 backup.sh(新增支持COS/阿里云盘)

1、一键备份脚本 backup.sh 功能特点 支持 MySQL/MariaDB/Percona 的数据库全量备份或选择备份;支持指定目录或文件的备份;支持加密备份文件(需安装 openssl 命令,可选);支持上传至 Google Drive(需先安装 rclone 并配置,可选);支持上传至 腾讯云COS(需先安装 coscm…

Linux初识地址空间

前言 上一期我们对进程优先级、命令行参数以及环境和变量做了介绍&#xff01;以前我们就提到过一个问题有了运行队列为什么还要有优先级&#xff1f;本期将带你揭晓&#xff01; 本期内容介绍 虚拟地址空间的引入 虚拟地址空间的介绍 如何理解地址空间 为什么要有地址空间 如…

Elasticsearch:智能 RAG,获取周围分块(一)

作者&#xff1a;来自 Elastic Sunile Manjee 在检索增强生成 (RAG) 领域&#xff0c;一个持续存在的挑战是找到输入大型语言模型 (LLM) 的最佳数据量。数据太少会导致响应不足或不准确&#xff0c;而数据太多会导致答案模糊。这种微妙的平衡启发我开发了一个专注于智能分块和利…

Flink面试必问题:时间和窗口处理面试题及参考答案(3万字长文)

目录 Flink中的事件时间(Event Time)和处理时间(Processing Time)有什么区别? Flink的容错机制是如何实现的? Flink中的窗口(Window)是什么? Flink支持哪些类型的窗口? 如何定义一个滚动窗口(Tumbling Window)? 如何定义一个滑动窗口(Sliding Window)? …

花钱就能过?PMP到底有没有用

在项目管理领域&#xff0c;PMP&#xff08;Project Management Professional&#xff09;认证常被看作是专业能力的金牌标准。 然而&#xff0c;伴随着这一认证的普及&#xff0c;也出现了一些质疑声&#xff0c;比如“PMP认证是否只是金钱和时间的投入就能获得的证书&#xf…

Mybatis工作流程和插件开发

在了解插件开发之前&#xff0c;我们先总体的来梳理一下Mybatis的大致执行流程&#xff1a; 1.new SqlSessionFactoryBuilder().build(inputStream):先根据配置文件&#xff08;包含了全局配置文件和映射配置文件&#xff09;初始化一个对象Configuration&#xff08;这里对象里…

使用python调ffmpeg命令将wav文件转为320kbps的mp3

320kbps竟然是mp3的最高采样率&#xff0c;有点低了吧。 import os import subprocessif __name__ __main__:work_dir "D:\\BaiduNetdiskDownload\\周杰伦黑胶\\魔杰座" fileNames os.listdir(work_dir)for filename in fileNames:pure_name, _ os.path.spli…

Kubernetes面试整理-Kubernetes的主要组件有哪些?

Kubernetes 的主要组件分为控制平面组件和节点组件。以下是每个组件的详细介绍: 控制平面组件 1. API 服务器(kube-apiserver): ● 是 Kubernetes 控制平面的前端,接收、验证并处理所有的 API 请求。 ● 提供集群的管理接口,所有的集群操作都是通过 API 服务器进行的。

Java | Leetcode Java题解之第155题最小栈

题目&#xff1a; 题解&#xff1a; class MinStack {Deque<Integer> xStack;Deque<Integer> minStack;public MinStack() {xStack new LinkedList<Integer>();minStack new LinkedList<Integer>();minStack.push(Integer.MAX_VALUE);}public void …