当前位置: 首页 > news >正文

PyTorch 中的 Dropout 解析

文章目录

    • 一、Dropout 的核心作用
      • 数值示例:置零与缩放
        • **训练阶段**
        • **推理阶段**
    • 二、Dropout 的最佳使用位置与具体实例解析
      • 1. 放在全连接层后
      • 2. 卷积层后的使用考量
      • 3. BatchNorm 层与 Dropout 的关系
      • 4. Transformer 中的 Dropout 应用
    • 三、如何确定 Dropout 的位置和概率
      • 1. 位置选择策略
      • 2. Dropout 概率的调整
      • 3. 实践中的经验总结
    • 四、实用技巧与注意事项
      • 1. 训练与推理模式的切换
      • 2. Dropout 与其他正则化手段的协调
      • 3. 高级应用技巧


在深度学习模型训练过程中,防止过拟合是提升模型泛化能力的关键一步。Dropout 作为一种高效的正则化技术,已被广泛应用于各种神经网络架构。本文将深入探讨在使用 PyTorch 开发神经网络时,如何合理地应用 Dropout,包括其作用机制、最佳使用位置、具体实例解析、数值示例以及实用技巧,帮助你在模型设计中充分发挥 Dropout 的优势。

一、Dropout 的核心作用

Dropout 是一种正则化技术,通过在训练过程中随机“丢弃”一部分神经元的输出,来打破神经元之间的相互依赖,从而防止模型对训练数据过度拟合。其具体机制如下:

  • 训练阶段:以设定的概率(如 0.5)随机将部分神经元的输出置为 0。
  • 推理阶段:不再执行丢弃操作。

这种方式能够有效地迫使网络在不同的“子网络”上进行训练,大幅提高模型的泛化能力。

数值示例:置零与缩放

为了更直观地理解 Dropout 的工作流程,以下以一个简单的数值示例进行说明。

假设

  • 原始神经元输出向量为: x = [ 2 , 4 , 6 , 8 ] x = [2, 4, 6, 8] x=[2,4,6,8]
  • Dropout 概率 p = 0.5 p = 0.5 p=0.5
训练阶段
  1. 随机置零:根据 p = 0.5 p = 0.5 p=0.5,假设第 2 个和第 4 个神经元被丢弃,结果为:
    x ′ = [ 2 , 0 , 6 , 0 ] x' = [2, 0, 6, 0] x=[2,0,6,0]
  2. 缩放未被丢弃的神经元:为了保持期望值不变,未被丢弃的神经元输出按 1 1 − p = 2 \frac{1}{1 - p} = 2 1p1=2 倍缩放:
    x ′ ′ = [ 2 × 2 , 0 × 2 , 6 × 2 , 0 × 2 ] = [ 4 , 0 , 12 , 0 ] x'' = [2 \times 2, 0 \times 2, 6 \times 2, 0 \times 2] = [4, 0, 12, 0] x=[2×2,0×2,6×2,0×2]=[4,0,12,0]
推理阶段
  • 所有神经元都保留输出:在推理阶段,所有神经元都保留其输出,而不需要显式地对输出进行额外的缩放。因为在训练阶段,通过放大剩余神经元的输出 1 1 − p \frac{1}{1-p} 1p1 来调整了期望值。
  • 因此,推理阶段的输出直接使用未经缩放的值即可。例如,如果训练阶段的输出是 [ 2 , 4 , 6 , 8 ] [2, 4, 6, 8] [2,4,6,8],在推理阶段它仍然是 [ 2 , 4 , 6 , 8 ] [2, 4, 6, 8] [2,4,6,8],而不是再乘以 0.5 0.5 0.5

通过以上示例可以看到,Dropout 在训练阶段通过随机置零和缩放操作来达成正则化目标,从而帮助模型提升泛化能力。而在推理阶段,模型使用完整的神经元输出,确保预测的一致性和准确性。


二、Dropout 的最佳使用位置与具体实例解析

在设计神经网络结构时,合理放置 Dropout 层对提升模型性能至关重要。以下将结合具体实例,介绍常见的使用位置以及相关考量。

1. 放在全连接层后

在全连接层(Fully Connected Layers)后使用 Dropout 是最常见的做法,主要原因有:

  • 参数量大:全连接层通常包含大量参数,更容易出现过拟合。
  • 高度互联:神经元之间的强连接会放大过拟合风险。

示例

import torch.nn as nn
import torch.nn.functional as Fclass MLP(nn.Module):def __init__(self, input_size, hidden_size, output_size, dropout_rate=0.5):super(MLP, self).__init__()self.fc1 = nn.Linear(input_size, hidden_size)self.dropout = nn.Dropout(dropout_rate)self.fc2 = nn.Linear(hidden_size, output_size)def forward(self, x):x = F.relu(self.fc1(x))x = self.dropout(x)  # 在全连接层后应用 Dropoutx = self.fc2(x)return x

2. 卷积层后的使用考量

在卷积层(Convolutional Layers)后使用 Dropout 相对较少,主要原因有:

  • 参数相对较少:卷积层的参数量通常少于全连接层,过拟合风险略低。
  • 内在正则化:卷积操作本身及其后续的池化层(Pooling Layers)已具备一定正则化效果。

然而,在某些非常深的卷积网络(如 ResNet)中,仍有可能在特定卷积层后加入 Dropout,以进一步提高模型的泛化能力。

示例

class CNN(nn.Module):def __init__(self, num_classes=10, dropout_rate=0.5):super(CNN, self).__init__()self.conv1 = nn.Conv2d(3, 32, kernel_size=3, padding=1)self.conv2 = nn.Conv2d(32, 64, kernel_size=3, padding=1)self.dropout = nn.Dropout(dropout_rate)self.fc1 = nn.Linear(64 * 8 * 8, 128)self.fc2 = nn.Linear(128, num_classes)def forward(self, x):x = F.relu(self.conv1(x))x = F.max_pool2d(x, 2)x = F.relu(self.conv2(x))x = F.max_pool2d(x, 2)x = x.view(x.size(0), -1)  # 展平x = F.relu(self.fc1(x))x = self.dropout(x)  # 在全连接层后应用 Dropoutx = self.fc2(x)return x

3. BatchNorm 层与 Dropout 的关系

Batch Normalization(批标准化) 同样是一种常见的正则化手段,能加速训练并稳定模型。一般而言,不建议在 BatchNorm 层后直接使用 Dropout,其原因包括:

  • 正则化效果重叠:BatchNorm 本身具备一定的正则化作用,若紧接着使用 Dropout 可能导致过度正则化。
  • 训练不稳定:同时使用时,梯度更新易出现不稳定,影响模型收敛速度和效果。

若确有必要结合使用,可尝试将 Dropout 放在其他位置,或通过调整概率来降低对模型的影响。

4. Transformer 中的 Dropout 应用

Transformer 模型中,Dropout 的应用更具针对性,常见的做法包括:

  • 自注意力机制之后:在多头自注意力(Multi-Head Attention)输出后加 Dropout。
  • 前馈网络(Feed-Forward Network)之后:在前馈网络的每一层后应用 Dropout。
  • 嵌入层(Embedding Layers):在词嵌入和位置嵌入后也常加入 Dropout。

示例

class TransformerBlock(nn.Module):def __init__(self, embed_size, heads, dropout, forward_expansion):super(TransformerBlock, self).__init__()self.attention = nn.MultiheadAttention(embed_dim=embed_size, num_heads=heads)self.norm1 = nn.LayerNorm(embed_size)self.norm2 = nn.LayerNorm(embed_size)self.feed_forward = nn.Sequential(nn.Linear(embed_size, forward_expansion * embed_size),nn.ReLU(),nn.Linear(forward_expansion * embed_size, embed_size),)self.dropout = nn.Dropout(dropout)def forward(self, x):# 自注意力机制attention_output, _ = self.attention(x, x, x)x = self.norm1(x + self.dropout(attention_output))  # Dropout 应用于注意力输出# 前馈网络forward_output = self.feed_forward(x)x = self.norm2(x + self.dropout(forward_output))    # Dropout 应用于前馈网络输出return x

三、如何确定 Dropout 的位置和概率

1. 位置选择策略

  • 优先放在全连接层后:这是最常见、最有效的应用位置。
  • 在卷积层或 BatchNorm 后使用需谨慎
    • 卷积层后:仅在特定情况下(如非常深的网络)使用。
    • BatchNorm 后:一般不建议紧随其后使用 Dropout。
  • 特定网络结构中的应用:如 Transformer、RNN 等,应结合论文和最佳实践,按照推荐位置放置 Dropout。

2. Dropout 概率的调整

  • 常见取值:( 0.3 )~( 0.5 ) 是较为常用的范围,具体取值可视模型复杂度和过拟合程度而定。
  • 根据模型表现动态调整
    • 若过拟合严重:可适当增加 Dropout 概率。
    • 若模型欠拟合或性能下降:应适当降低 Dropout 概率。

3. 实践中的经验总结

  • 从推荐位置开始:如全连接层后,先测试模型性能,再进行微调。
  • 验证集评估:通过验证集上的指标来判断 Dropout 效果,并据此调整。
  • 结合其他正则化手段:如 L2 正则化、数据增强等,多管齐下往往更有效。

四、实用技巧与注意事项

1. 训练与推理模式的切换

在 PyTorch 中,模型在训练和推理阶段的行为有显著不同,尤其涉及 Dropout。务必在相应阶段切换正确的模式,否则会导致结果异常。

  • 训练模式:启用 Dropout
    model.train()
    
  • 推理模式:禁用 Dropout
    model.eval()
    

2. Dropout 与其他正则化手段的协调

  • BatchNorm 与 Dropout

    • 通常不建议在 BatchNorm 层后直接使用 Dropout。
    • 若需结合使用,应尝试在不同位置或调低 Dropout 概率。
  • 数据增强

    • 与 Dropout 同时使用,可进一步提升模型的泛化能力。
  • 早停(Early Stopping)

    • 配合 Dropout 一起使用,可有效防止深度模型在后期过拟合。

3. 高级应用技巧

  • 变异 Dropout:根据训练的不同阶段,动态调整 Dropout 概率,更好地适应模型学习需求。
  • 结构化 Dropout:不仅随机丢弃单个神经元,还可以丢弃整块特征图或神经元组,从而增强模型的鲁棒性。

相关文章:

PyTorch 中的 Dropout 解析

文章目录 一、Dropout 的核心作用数值示例:置零与缩放**训练阶段****推理阶段** 二、Dropout 的最佳使用位置与具体实例解析1. 放在全连接层后2. 卷积层后的使用考量3. BatchNorm 层与 Dropout 的关系4. Transformer 中的 Dropout 应用 三、如何确定 Dropout 的位置…...

计算机网络 (41)文件传送协议

前言 一、文件传送协议(FTP) 概述: FTP(File Transfer Protocol)是互联网上使用得最广泛的文件传送协议。FTP提供交互式的访问,允许客户指明文件的类型与格式(如指明是否使用ASCII码&#xff0…...

AOSP 14及以上userdebug无法调试的问题

参考链接:原文...

【Vue】点击侧边导航栏,右侧main对应显示

需求&#xff1a;点击侧边导航栏&#xff0c;右侧main对应显示 通过v-if或v-show等指令来控制不同内容的显示隐藏来实现 注意&#xff1a; 使用v-if时候进行导航栏切换&#xff0c;右侧显示区域可能会出现样式错乱&#xff1b;使用v-show则不会出现此错误 <template>&…...

Python Selenium 库学习指南

Python Selenium 库学习指南 目录 Selenium 基础介绍 Selenium 是什么安装 SeleniumSelenium 的工作原理 Selenium 基本用法 启动浏览器定位元素常见操作&#xff1a;点击、输入、滚动 高级用法 切换窗口与标签页模拟鼠标操作与键盘输入动态加载的网页处理 等待机制 显式等待…...

如何解决Webview和H5缓存问题,确保每次加载最新版本的资源

WebView 用于加载 H5 页面是常见的做法&#xff0c;它能够加载远程的 HTML、CSS、JavaScript 资源&#xff0c;并且让 Web 应用嵌入到原生 App 中。然而&#xff0c;WebView 的缓存机制有时会导致用户看到的是旧版本的页面或资源&#xff0c;尤其是在 H5 发版后&#xff0c;iOS…...

costmap 中点与多边形的相对位置关系

一、背景 近期在阅读move_base源码costmap部分(感觉想玩转movebase导航&#xff0c;costmap必须理解呀)。读到两处点与多边形的相对位置关系。在此总结一下&#xff0c;分别是: intersects: 利用待测点向右引出的射线与多边形的交点数来确定相对位置。有的称 射线交叉算法&am…...

C#与Vue2上传下载Excel文件

1、上传文件流程&#xff1a;先上传文件&#xff0c;上传成功&#xff0c;返回文件名与url&#xff0c;然后再次发起请求保存文件名和url到数据库 前端Vue2代码&#xff1a; 使用element的el-upload组件&#xff0c;action值为后端接收文件接口&#xff0c;headers携带session信…...

.NetCore 使用 NPOI 读取带有图片的excel数据

在.NetCore使用NPOI插件进行批量导入时&#xff0c;获取Excel中的所有的图片数据&#xff0c;存到集合中。 1.定义类PictureData 代码如下&#xff1a; public class PictureData { public byte[] Data { get; set; } } 2.数据集引用 using NPOI.XSSF.UserModel; usin…...

鸿蒙打包发布

HarmonyOS应用/元服务发布&#xff08;打包发布&#xff09; https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/ide-publish-app-V13?catalogVersionV13 密钥&#xff1a;包含非对称加密中使用的公钥和私钥&#xff0c;存储在密钥库文件中&#xff0c;格式…...

C++并发编程之跨应用程序与驱动程序的单生产者单消费者队列

设计一个单生产者单消费者队列&#xff08;SPSC队列&#xff09;&#xff0c;不使用C STL库或操作系统原子操作函数&#xff0c;并且将其放入跨进程共享内存中以便在Ring3&#xff08;用户模式&#xff09;和Ring0&#xff08;内核模式&#xff09;之间传递数据&#xff0c;是一…...

22、PyTorch nn.Conv2d卷积网络使用教程

文章目录 1. 卷积2. python 代码3. notes 1. 卷积 输入A张量为&#xff1a; A [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ] \begin{equation} A\begin{bmatrix} 0&1&2&3\\\\ 4&5&6&7\\\\ 8&9&10&11\\\\ 12&13&14&15 \end{b…...

智汇云舟参编《城市轨道交通安全防范系统技术要求》国标正式发布

近日&#xff0c;根据国家标准化管理委员会官网&#xff0c;全国标准信息公共服务平台发布的公告&#xff0c;国家标准《城市轨道交通安全防范系统技术要求》&#xff08;GB/T 26718-2024&#xff09;已由全国城市轨道交通标准化技术委员会上报国家标准化管理委员会&#xff0c…...

C# 数据拟合教程:使用 Math.NET Numerics 的简单实现

C# 数据拟合实战&#xff1a;使用 Math.NET Numerics 快速实现 引言 在科学计算、工程建模或数据分析中&#xff0c;数据拟合是一个非常重要的技术。无论是线性拟合还是非线性拟合&#xff0c;借助适当的工具都可以快速解决问题。本文将向您展示如何使用 C# 和强大的数值计算…...

WEB攻防-通用漏洞_XSS跨站_权限维持_捆绑钓鱼_浏览器漏洞

目录 XSS的分类 XSS跨站-后台植入Cookie&表单劫持 【例1】&#xff1a;利用beef或xss平台实时监控Cookie等凭据实现权限维持 【例2】&#xff1a;XSS-Flash钓鱼配合MSF捆绑上线 【例3】&#xff1a;XSS-浏览器网马配合MSF访问上线 XSS的分类 反射型&#xff08;非持久…...

瑞芯微 RK 系列 RK3588 使用 ffmpeg-rockchip 实现 MPP 视频硬件编解码-代码版

前言 在上一篇文章中&#xff0c;我们讲解了如何使用 ffmpeg-rockchip 通过命令来实现 MPP 视频硬件编解码和 RGA 硬件图形加速&#xff0c;在这篇文章&#xff0c;我将讲解如何使用 ffmpeg-rockchip 用户空间库&#xff08;代码&#xff09;实现 MPP 硬件编解码。 本文不仅适…...

MySQL数据库(SQL分类)

SQL分类 分类全称解释DDLData Definition Language数据定义语言&#xff0c;用来定义数据库对象&#xff08;数据库&#xff0c;表&#xff0c;字段&#xff09;DMLData Manipulation Language数据操作语言&#xff0c;用来对数据库表中的数据进行增删改DQLData Query Languag…...

SpringBoot-Day1

1.Springboot入门 创建Maven工程 导入spring-boot-stater-web起步依赖 编写Controller 提供启动类 2.yml配置信息书写与获取 书写 # 发件人信息 email:user: 172349823457qq.comcode: sajdajlwhjfgfkllwhost: smtp.qq.comauth: true ​ # 学生爱好 hobbies:- 打篮球- 踢…...

【JavaScript】基础内容,HTML如何引用JavaScript, JS 常用的数据类型

HTML 嵌入 Javascript 的方式 引入外部 js 文件 <head> <script Language "javaScript" src"index.js"/> </head>内部声明 <head> <script language"javascript">function hello(){alert("hello word&qu…...

mysql中创建计算字段

目录 1、计算字段 2、拼接字段 3、去除空格和使用别名 &#xff08;1&#xff09;去除空格 &#xff08;2&#xff09;使用别名&#xff1a;AS 4、执行算术计算 5、小结 博主用的是mysql8 DBMS&#xff0c;附上示例资料&#xff1a; 百度网盘链接: https://pan.baidu.co…...

如何优化zibll子比主题SEO并设置有效robots文件

如果你不知道 robots.txt 是什么&#xff0c;也不确定如何正确地设置它&#xff0c;本篇文章会向您介绍适用于子比主题的 robots.txt 文件&#xff0c;利用它可以提升 SEO 的效果&#xff0c;避免收录无关页面&#xff0c;从而解决网站被收录但无权重的困境。 作为一款高效的 …...

线程间通信

线程间通信&#xff08;Inter-Thread Communication, 简称ITC&#xff09;是指在多线程编程中&#xff0c;不同线程之间如何交换信息或协调彼此的行为。良好的线程间通信机制是构建高效、可靠的并发程序的关键。Java语言提供了多种内置工具和库来支持线程间的通信&#xff0c;包…...

【实践】操作系统智能助手OS Copilot新功能测评

一、引言 数字化加速发展&#xff0c;尤其人工智能的发展速度越来越快。操作系统智能助手成为提升用户体验与操作效率的关键因素。OS Copilot借助语言模型&#xff0c;人工智能等&#xff0c;对操作系统的自然语言交互操作 推出很多功能&#xff0c;值得开发&#xff0c;尤其运…...

今年的电商年货节,主流的营销策略是怎样?

随着一年的年关将近&#xff0c;新一年的CNY营销也逐渐拉开帷幕。考虑到此时消费需求的膨胀&#xff0c;这个时间不论对于线上还是线下市场而言&#xff0c;都是重要的营销节点。今年CNY营销&#xff0c;电商平台上的主流营销策略是这样&#xff1f;就让我们来简单了解下概况。…...

Java设计模式——单例模式(特性、各种实现、懒汉式、饿汉式、内部类实现、枚举方式、双重校验+锁)

文章目录 单例模式1️⃣特性&#x1f4aa;单例模式的类型与实现&#xff1a;类型懒汉式实现(线程不安全)懒汉式实现(线程安全&#xff09;双重锁校验懒汉式(线程安全)饿汉式实现(线程安全)使用类的内部类实现⭐枚举方式实现单例&#xff08;推荐&#xff09;&#x1f44d; 单例…...

基于 Python 的学生成绩管理系统设计与实现

标题:基于 Python 的学生成绩管理系统设计与实现 内容:1.摘要 摘要&#xff1a;本文介绍了一个基于 Python 的学生成绩管理系统的设计与实现。该系统旨在提高学生成绩管理的效率和准确性&#xff0c;方便教师和学生进行成绩查询和分析。本文详细描述了系统的设计思路、功能模块…...

局域网共享文件夹实现两台Windows电脑之间传输文件

文章目录 1. 启用网络发现和文件共享2. 设置共享文件夹3. 记录主电脑的IP地址4. 在第二台电脑访问共享文件夹5. 故障排查6. 启用文件共享未生效方案1&#xff1a;检查服务状态方案2&#xff1a;检查防火墙设置方案3&#xff1a;检查网络类型方案4&#xff1a;使用“管理员命令提…...

JS的事件循环机制

<script>setTimeout(()>{console.log(1)},1000)setTimeout(()>{console.log(2)},3000)var start Date.now();while ( (Date.now() - start) < 10000 ){}console.log(3)</script>执行如下代码会发现先打印3&#xff0c;再打印1 再打印2。 现象本质还是因为…...

《自动驾驶与机器人中的SLAM技术》ch9:自动驾驶车辆的离线地图构建

目录 1 点云建图的流程 2 前端实现 2.1 前端流程 2.2 前端结果 3 后端位姿图优化与异常值剔除 3.1 两阶段优化流程 3.2 优化结果 ① 第一阶段优化结果 ② 第二阶段优化结果 4 回环检测 4.1 回环检测流程 ① 遍历第一阶段优化轨迹中的关键帧。 ② 并发计算候选回环对…...

环境搭建——Mysql、Redis、Rocket MQ部署

前言 在搭建分布式系统时&#xff0c;MySQL、Redis 和 RocketMQ 是常用的基础服务。每个服务各自的功能不同&#xff0c;但它们在数据存储、缓存、消息队列等方面不可或缺。如果你是初学者&#xff0c;别担心&#xff0c;本文会一步步详细教你如何在服务器上通过 Docker 部署这…...

Pycharm连接远程解释器

这里写目录标题 0 前言1 给项目添加解释器2 通过SSH连接3 找到远程服务器的torch环境所对应的python路径&#xff0c;并设置同步映射&#xff08;1&#xff09;配置服务器的系统环境&#xff08;2&#xff09;配置服务器的conda环境 4 进入到程序入口&#xff08;main.py&#…...

git的基本操作

创建分支&#xff1a; 1&#xff0c;拉去develop代码&#xff1b; 2&#xff0c;git checkout develop切换到develop&#xff1b; 3&#xff0c;git branch lyb/lyb_develop &#xff1b; 4&#xff0c;git push --set-upstream origin lyb/lyb_develop 切换分支&#xff0c;上…...

Linux软件包管理工具概览

目录 RPM&#xff08;RedHat Package Manager&#xff09; DPKG&#xff08;Debian Packager&#xff09; APT&#xff08;Advanced Package Tool&#xff09; YUM&#xff08;Yellowdog Updater, Modified&#xff09; DNF&#xff08;Dandified YUM&#xff09; 总结 在…...

unity学习16:unity里向量的计算,一些方法等

目录 1 unity里的向量&#xff1a; 2 向量加法 2.1 向量加法的几何意义 2.2向量加法的标量算法 3 向量减法 3.1 向量减法的几何意义 3.2 向量减法的标量算法 4 向量的标量乘法 5 向量之间的乘法要注意是左乘 还是右乘 5.1 注意区别 5.2 向量&#xff0c;矩阵&#x…...

HTML拖拽功能(纯html5+JS实现)

1、HTML拖拽--单元行拖动 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><…...

w158医院资源管理系统的设计与实现

&#x1f64a;作者简介&#xff1a;多年一线开发工作经验&#xff0c;原创团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339;赠送计算机毕业设计600个选题excel文…...

【计算机网络】lab3 802.11 (无线网络帧)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;计算机网络_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前言 2.…...

linux进程

课本概念&#xff1a;程序的⼀个执行实例&#xff0c;正在执行的程序等内核观点&#xff1a;担当分配系统资源&#xff08;CPU时间&#xff0c;内存&#xff09;的实体。 进程信息被放在一个叫做进程控制块的数据结构中&#xff0c;可以理解为进程属性的集合.课本上称之为PCB&…...

pytest-allure框架简单封装----测试报告

安装allure-commandline---可以支持allure命令 把对应的压缩包解压后,把xxx/bin配置到环境变量的path去 可以输入allure -version检查版本 pip install allure-pytest2.11.1 生成测试报告 import pytest pytest_args ["-s","-v","--capturesys…...

【2025最新计算机毕业设计】基于SpringBoot+Vue奶茶点单系统(高质量源码,提供文档,免费部署到本地)

作者简介&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流。✌ 主要内容&#xff1a;&#x1f31f;Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能…...

HTML中最基本的东西

本文内容的标签&#xff0c;将是看懂HTML的最基本之基本 &#xff0c;是跟您在写文章时候一样内容。一般想掌握极其容易&#xff0c;但是也要懂得如何使用&#xff0c;过目不忘&#xff0c;为手熟尔。才是我们学习的最终目的。其实边看边敲都行&#xff0c;或者是边看边复制粘贴…...

Open FPV VTX开源之ardupilot配置

Open FPV VTX开源之ardupilot配置 1. 源由2. 配置3. 总结4. 参考资料5. 补充5.1 飞控固件版本5.2 配置Ardupilot的BF OSD5.3 OSD偏左问题 1. 源由 飞控嵌入式OSD - ardupilot配置使用ardupliot配套OSD图片。 Choose correct font depending on Flight Controller SW. ──>…...

基于OQuPy的量子编程实例探究:理论、实践与展望

基于OQuPy的量子编程探究:理论、分析与实践 一、引言 1.1 研究背景与意义 近年来,量子计算作为一种革命性的计算范式,在科学界与产业界引发了广泛关注。它依托量子力学原理,运用量子比特(qubit)进行信息处理,与传统计算相比,具备并行处理、指数级加速等显著优势,为解…...

深入理解 ECMAScript 2024 新特性:正则表达式 /v 标志

ECMAScript 2024 &#xff08;ES15&#xff09;标准引入了新的正则表达式标志 /v&#xff0c;这一新增功能不仅优化了多行匹配的处理&#xff0c;还增加了对特殊字符匹配的支持。这一变革对于需要处理复杂文本数据的应用场景尤为重要&#xff0c;比如日志分析、代码审核等。接下…...

iOS 逆向学习 - Inter-Process Communication:进程间通信

iOS 逆向学习 - Inter-Process Communication&#xff1a;进程间通信 一、进程间通信概要二、iOS 进程间通信机制详解1. URL Schemes2. Pasteboard3. App Groups 和 Shared Containers4. XPC Services 三、不同进程间通信机制的差异四、总结 一、进程间通信概要 进程间通信&am…...

Prompt工程框架介绍与场景选择

文章目录 Prompt工程框架介绍1. CREATE框架2. RACE框架3. RISE框架4. ROSES框架5. E.R.A框架6. SAGE框架7. CARE框架8. PEAR框架9. TIER框架10. LEAP框架11. DEEP框架12. WISE框架13. FOCUS框架14. CLEAR框架15. SMART框架16. CLEAR框架17. LEAN框架18. BRIEF框架19. FAST框架2…...

信号量机制之苹果-橘子问题

桌上有一空盘&#xff0c;允许存放一种水果。爸爸可向盘中放苹果&#xff0c;也可向盘中放橘子&#xff0c;儿子专等吃盘中的橘子&#xff0c;女儿专等吃盘中的苹果。规定当盘空时一次只能放一个水果供吃者取用。 要求&#xff1a;请用信号量机制实现爸爸、儿子、女儿三个并发…...

工业路由器和工业交换机,如何打造高效稳定的工业网络?

工业路由器和工业交换机各有千秋&#xff0c;但如何将它们完美结合&#xff0c;构建稳定高效的工业网络&#xff1f;答案就在这里&#xff01; 工业物联网&#xff08;IIoT&#xff09;是高效、稳定的工业网络成为智慧工厂、工业自动化和远程监控等场景的基础支撑。工业路由器…...

【IDEA 2024】学习笔记--文件选项卡

在我们项目的开发过程中&#xff0c;由于项目涉及的类过多&#xff0c;以至于我们会打开很多的窗口。使用IDEA默认的配置&#xff0c;个人觉得十分不便。 目录 一、设置多个文件选项卡按照文件字母顺序排列 二、设置多个文件选项卡分行显示 一、设置多个文件选项卡按照文件字…...

LabVIEW光流算法的应用

该VI展示了如何使用NI Vision Development Module中的光流算法来计算图像序列中像素的运动矢量。通过该方法&#xff0c;可以实现目标跟踪、运动检测等功能&#xff0c;适用于视频处理、机器人视觉和监控领域。程序采用模块化设计&#xff0c;包含图像输入、算法处理、结果展示…...