深度学习图像算法工程师--面试准备(2)
深度学习面试准备
深度学习图像算法工程师–面试准备(1)
深度学习图像算法工程师–面试准备(2)
文章目录
- 深度学习面试准备
- 前言
- 一、Batch Normalization(批归一化)
- 1.1 具体步骤
- 1.2 BN一般用在网络的哪个部分
- 二、Layer Normalization(层归一化)
- 三、 Internal Covariate Shift
- 总结
前言
参考文章
一、Batch Normalization(批归一化)
- BatchNormalization的作用是通过规范化的手段,将越来越偏的分布拉回到标准化的分布,使得激活函数的输入值落在激活函数对输入比较敏感的区域,从而使梯度变大,加快学习收敛速度,避免梯度消失的问题。
- 使得每层网络的输入都服从(0,1)0均值,1方差分布,如果不进行BN,那么每次输入的数据分布不一致,网络训练精度自然也受影响。
- 在Batch中进行 Normalization 计算,其实就是在每个通道进行一次计算,即计算范围是 [Batch, 1, Height,Width],计算次数是 Channel。
1.1 具体步骤

- 计算样本均值。
- 计算样本方差。
- 样本数据标准化处理。
- 进行平移和缩放处理。引入了γ和β两个参数。来训练γ和β两个参数。引入了这个可学习重构参数γ、β,让我们的网络可以学习恢复出原始网络所要学习的特征分布。
1.2 BN一般用在网络的哪个部分
先卷积再激活做BN
Conv+BN+Relu
Batch normalization 的 batch 是批数据, 把数据分成小批小批进行 stochastic gradient descent. 而且在每批数据进行前向传递 forward propagation 的时候, 对每一层都进行 normalization 的处理。
二、Layer Normalization(层归一化)
LN和BN不同,LN是根据样本的特征数来做归一化的,完全独立于batch size。在一个Layer中进行计算,可以理解是一个样本中进行Normalization,即计算范围是 [1, Channel, Height, Width],计算次数是 Batch。
常应用于循环神经网络(RNN)等结构,以解决对于不定长度序列的输入数据的归一化问题。
三、 Internal Covariate Shift
Internal Covariate Shift(内部协变量转移)是指神经网络在训练过程中每一层输入数据分布的变化,即随着网络参数的更新,每一层的输入数据的分布也会发生变化。这种内部协变量转移可能会导致训练过程变得更加困难,因为每一层都需要适应不断变化的输入数据分布。
Internal Covariate Shift 的问题在于,当神经网络每一层的输入数据的分布发生变化时,之前学习到的权重可能就不再适用,这会导致训练过程变得不稳定,需要更小的学习率和更仔细的调参来收敛。同时,由于每一层的输入数据分布的变化,网络可能需要更多的训练样本才能学到有效的表示。
为了解决 Internal Covariate Shift 的问题,批量归一化(Batch Normalization)被引入到神经网络中。批量归一化通过对每一层的输入数据进行归一化,使得每层的输入数据分布保持稳定,有助于加速训练过程、提高模型的泛化能力,并且减少对初始权重的依赖。
总结
-
BN的优点:
-
可以解决“Internal Covariate Shift”
-
解决梯度消失的问题(针对sigmoid),加快收敛速度。
-
对初始权重不那么敏感:BN 使得网络对初始权重的选择不那么敏感,减少了调参的困难。
-
BN的缺点:
- 计算代价:BN 需要额外的计算量来计算均值和方差,可能会增加训练时间。
- 不适用于小批量数据:在小批量数据上表现可能不稳定,因为均值和方差的估计可能不准确。
- LN的优点:
- 不依赖于batch size。
- 适用于RNN;
- LN的缺点:
- 不适用于CNN。
- 针对具有多个连续特征的数据,进行特征之间的缩放,可能会导致量纲差异消失。
- 局部归一化:LN 是在每个样本中所有特征的维度上进行归一化,可能会丢失通道间的信息,不够全局。
- 缓慢的收敛速度:相对于 BN,LN 可能导致收敛速度较慢,需要更多的训练时间。
相关文章:
深度学习图像算法工程师--面试准备(2)
深度学习面试准备 深度学习图像算法工程师–面试准备(1) 深度学习图像算法工程师–面试准备(2) 文章目录 深度学习面试准备前言一、Batch Normalization(批归一化)1.1 具体步骤1.2 BN一般用在网络的哪个部分 二、Layer Normaliza…...
解锁安卓开发利器:深度探析ADB【安卓开发】
引言 在安卓开发与维护过程中,我们经常会遇到一些限制,比如无法直接访问某些系统功能,或者在某些定制系统中 受到限制 。为了解决这些问题,我们需要一种有效的工具来管理和调试安卓设备,而这时候ADB(Andro…...
【Python】FTP库的介绍及用法
目录 1、应用场景 2、FTP-标准库 1、应用场景 FTP库(ftplib)在Python中的应用场景主要包括: 文件上传和下载: 通过FTP服务器,可以提供用于上传和下载文件的功能。这在需要在服务器和客户端之间共享数据的情况下非常…...
C++——string模拟实现
前言:上篇文章我们对string类及其常用的接口方法的使用进行了分享,这篇文章将着重进行对这些常用的接口方法的内部细节进行分享和模拟实现。 目录 一.基础框架 二.遍历字符串 1.[]运算符重载 2.迭代器 3.范围for 三.常用方法 1.增加 2.删除 3.调…...
从零开始:神经网络(2)——MP模型
声明:本文章是根据网上资料,加上自己整理和理解而成,仅为记录自己学习的点点滴滴。可能有错误,欢迎大家指正。 神经元相关知识,详见从零开始:神经网络——神经元和梯度下降-CSDN博客 1、什么是M-P 模型 人…...
Python调用edge-tts实现在线文字转语音
edge-tts是一个 Python 模块,允许通过Python代码或命令的方式使用 Microsoft Edge 的在线文本转语音服务。 项目源码 GitHub - rany2/edge-tts: Use Microsoft Edges online text-to-speech service from Python WITHOUT needing Microsoft Edge or Windows or an…...
植物病害识别:YOLO甘蔗叶片病害识别分类数据集
YOLO甘蔗叶片病害识别数据集, 包含尾孢菌叶斑病,眼斑病,健康,红腐病,锈病,黄叶病6个常见病类别,3300多张图像,yolo标注完整,全部原始图像,未应用增强。 适用于CV项目&…...
pyqt QTextEdit 捕获enter按键
参考: https://blog.csdn.net/qq_27061049/article/details/101550616 方法一: 在PyQt中,可以通过重写QTextEdit的keyPressEvent()函数来捕获Enter按键。下面是示例代码: from PyQt5.QtWidgets import QApplication, QMainWindo…...
一劳永逸的方法解决:LNK1168无法打开 xxx.exe 进行写入 报错问题
这种错误的产生原因: 运行程序退出不是按正常流退出,是按窗口右上角的 “X” 来关闭程序,但是后台的xxx.exe控制台程序还在运行;修改程序的代码后再运行,就会报LNK1168的错误; 报错示例: 解决方…...
程序员的金三银四求职宝典:面试技巧分享
随着春天的到来,程序员们迎来了求职的旺季——金三银四。在这个时期,各大公司纷纷开放招聘,为求职者提供了丰富的选择机会。然而,如何在众多的面试中脱颖而出,成功获得心仪的职位,就需要掌握一些有效的面试技巧。下面,就让我们一起来探讨一下金三银四求职…...
【DevOps基础篇之k8s】如何应用Kubernetes中的Role Based Access Control(RBAC)
【DevOps基础篇之k8s】如何应用Kubernetes中的Role Based Access Control(RBAC) 目录 【DevOps基础篇之k8s】如何应用Kubernetes中的Role Based Access Control(RBAC)背景Kubernetes身份验证和授权基于角色的访问控制(RBAC)用户账户 vs. 服务账户角色 vs. 集群角色RoleBi…...
python知网爬虫论文pdf下载+立即可用(动态爬虫)
文章目录 使用代码 使用 自己工作需要,分享出来,刚刚修改完。 知需要修改keyword就可以完成自动搜索和下载同时翻页。 但是需要安装Chrome,也支持linux爬虫,也要安装linux Chrome非可视化版。 代码 import selenium.webdriver …...
DataFunSummit 2023:洞察现代数据栈技术的创新与发展(附大会核心PPT下载)
随着数字化浪潮的推进,数据已成为企业竞争的核心要素。为了应对日益增长的数据挑战,现代数据栈技术日益受到业界的关注。DataFunSummit 2023年现代数据栈技术峰会正是在这样的背景下应运而生,汇聚了全球数据领域的精英,共同探讨现…...
运行 Jmeter 文件生成 HTML 测试报告,我选择 ANT 工具
概述 ant 是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于 Java 环境中的软件开发。 在与 Jmeter 生成的 jmx 文件配合使用中,ant 会完成jmx计划的执行和生成jtl文件,并将jtl文件转化为html页面进行查看。 还可…...
TensorRT是什么,有什么作用,如何使用
TensorRT 是由 NVIDIA 提供的一个高性能深度学习推理(inference)引擎。它专为生产环境中的部署而设计,用于提高在 NVIDIA GPU 上运行的深度学习模型的推理速度和效率。以下是关于 TensorRT 的详细介绍: TensorRT 是 NVIDIA 推出的…...
同比和环比
1.同比就是今年的某时期与去年这个时期 进行对比 (消除季节性差异) 例子:2018年一季度销量 2019年一季度销量 上升/下滑 2.环比是今年的某个时期与当前上一个时期进行对比(两个时期是连续的) 例子:2024年1月 营收额1000万元 2024年2月营收额3000万元 同比增长...
js中批量修改对象属性
首先,有这个对象 let a {id: 1,name: 张三,age: 18,sex: 0 }需求:同时修改name,id,并添加一个新属性c 常规写法: a.id 2; a.name 李四; a.c 1;但这种写法遇到批量就会很麻烦 解决方法: 方法1: 使用Object.assi…...
应用案例 | Softing echocollect e网关助力汽车零部件制造商构建企业数据库,提升生产效率和质量
为了提高生产质量和效率,某知名汽车零部件制造商采用了Softing echocollect e多协议数据采集网关——从机器和设备中获取相关数据,并直接将数据存储在中央SQL数据库系统中用于分析处理,从而实现了持续监控和生产过程的改进。 一 背景 该企业…...
使用大带宽服务器对网站有什么好处?
近年来大带宽服务器频频出现在咱们的视野当中,选用的用户也在与日增长。那么究其主要原因是什么?租用大带宽服务器的好处又有哪些? 今天德迅云安全带您来了解下。1.有效提升网站访问速度 一般来说,正规的网站对用户体验度都是非常有讲究的,…...
17-Java解释器模式 ( Interpreter Pattern )
Java解释器模式 摘要实现范例 解释器模式(Interpreter Pattern)实现了一个表达式接口,该接口解释一个特定的上下文 这种模式被用在 SQL 解析、符号处理引擎等 解释器模式提供了评估语言的语法或表达式的方式,它属于行为型模式 …...
【PID 控制算法实战】C 语言实现:结构体封装、积分限幅与一阶滤波
PID代码解读 (c语言版本) PID的控制流程根据流程一步步描述代码: PID代码流程 创建变量 typedef struct {float Kp, Ki, Kd;float error,last_error;float integral,max_intergral;float output,max_output; }PID;初始化PID的各类参数 void PID_Init(PID *pid,floa…...
如何在5分钟内将SDS动态字符串库集成到您的C项目中:完整配置指南
如何在5分钟内将SDS动态字符串库集成到您的C项目中:完整配置指南 【免费下载链接】sds Simple Dynamic Strings library for C 项目地址: https://gitcode.com/gh_mirrors/sds/sds SDS(Simple Dynamic Strings)是一个为C语言设计的高效…...
Spring Boot 3 整合 GraalVM 原生镜像:启动快 10 倍,内存省一半
本文基于一个真实电商订单查询服务的 Native Image 改造过程,从环境搭建到生产部署,包含所有踩坑细节与最终性能数据。版本环境: Spring Boot 3.2.4 GraalVM CE 21.0.2 Maven 3.9.6 Docker 24 CentOS 7背景:一个启动 12 秒的微…...
Golang Docker SDK如何用_Golang Docker SDK教程【收藏】
client.NewClientWithOpts 必须显式指定连接方式,推荐使用 client.FromEnv client.WithAPIVersionNegotiation();ImagePull 需消费全部响应流;ContainerCreate 返回仅含 ID 字符串,Start 时须传完整 ID;ContainerLogs…...
基于Python的网购平台管理系统毕业设计
博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在设计并实现一个基于Python的网购平台管理系统,以满足现代电子商务环境下对高效、安全、便捷的网购体验的需求。具体研究目的如下ÿ…...
Win11更新后启动失败?手把手教你用安装U盘进WinRE修复EFI分区和BCD文件
Win11更新后启动失败?手把手教你用安装U盘进WinRE修复EFI分区和BCD文件 最近不少用户反馈,在安装Win11 24H2更新后遭遇了0xc000000f启动错误。这个蓝屏错误通常意味着系统无法读取启动配置数据(BCD),导致Windows无法正…...
从原理到实战:用Qt和C++手搓一个带容错的二维码生成器
从原理到实战:用Qt和C手搓一个带容错的二维码生成器 二维码技术早已渗透到我们生活的方方面面,从支付扫码到产品溯源,这项诞生于1994年的技术因其高密度编码和容错能力成为移动互联网时代的重要入口。但你是否想过抛开现成的库,亲…...
开发者投资指南:软件测试人员的专业投资之道
当测试思维遇见投资世界 在代码与系统的交界处,软件测试从业者早已练就独特的风险嗅觉和稳定性评估能力。这些专业素养正成为投资领域的稀缺资源。本文将从测试工程师的专业视角出发,解析股票、加密货币与NFT三大投资领域的核心逻辑,揭示如何…...
保姆级教程:用PyTorch手把手实现SE注意力模块(附ResNet集成代码)
保姆级教程:用PyTorch手把手实现SE注意力模块(附ResNet集成代码) 在深度学习模型的优化过程中,注意力机制已经成为提升模型性能的利器。今天,我们将从零开始实现一个完整的SE(Squeeze-and-Excitation&#…...
图解UEFI启动时,PCIe的‘根’与‘桥’是如何长出来的(以EDK2代码为例)
从树根到枝叶:EDK2中PCIe拓扑结构的可视化构建指南 1. PCIe拓扑结构的生物学隐喻 想象一下,当你观察一棵大树的生长过程时,首先看到的是深埋地下的根系,它们为整棵树提供支撑和养分输送通道。PCIe子系统在计算机系统中的角色与这棵…...
