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

布隆过滤器:高效的数据结构与应用详解

引言

在处理大规模数据时,如何高效地判断某个元素是否存在于集合中是一个常见问题。传统的数据结构(如哈希表)虽然可以解决这一问题,但在存储空间和查询效率上可能存在瓶颈。布隆过滤器(Bloom Filter)作为一种空间效率极高的概率型数据结构,被广泛应用于缓存系统、数据库和网络爬虫等领域。本文将深入探讨布隆过滤器的原理、优缺点以及实际应用,并通过 Java 代码示例展示其实现方式。


一、布隆过滤器概述

布隆过滤器是由 Burton Howard Bloom 在 1970 年提出的一种空间效率极高的数据结构,用于判断一个元素是否属于某个集合。它的核心思想是通过多个哈希函数将元素映射到一个位数组中,从而以极小的存储空间实现高效的查询。


二、布隆过滤器的核心原理

  1. 位数组

    布隆过滤器使用一个长度为 m 的位数组(Bit Array)来存储数据。初始时,所有位都设置为 0。

  2. 哈希函数

    布隆过滤器使用 k 个独立的哈希函数,将元素映射到位数组中的 k 个位置。这些位置的位会被设置为 1。

  3. 查询过程

    当需要判断一个元素是否存在于集合中时,布隆过滤器会通过相同的 k 个哈希函数计算位数组中的 kk 个位置。如果这些位置的值都为 1,则认为元素可能存在;如果有任何一个位置的值为 0,则元素一定不存在。

  4. 误判率

    布隆过滤器是一种概率型数据结构,存在一定的误判率(False Positive)。即,它可能将不属于集合的元素误判为存在。但布隆过滤器不会出现漏判(False Negative),即不会将属于集合的元素误判为不存在。


三、布隆过滤器的优缺点

优点

  1. 空间效率高:相比哈希表,布隆过滤器使用极少的存储空间。
  2. 查询速度快:查询时间复杂度为 O(k),其中 k 是哈希函数的数量。
  3. 支持大规模数据:适用于需要处理海量数据的场景。

缺点

  1. 存在误判率:无法完全避免误判。
  2. 不支持删除操作:由于多个元素可能共享位数组中的位,删除操作会导致误判率增加。

四、布隆过滤器的应用场景

  1. 缓存系统:用于快速判断数据是否在缓存中,减少数据库查询压力。
  2. 网络爬虫:用于判断 URL 是否已被爬取,避免重复抓取。
  3. 垃圾邮件过滤:用于判断邮件是否属于垃圾邮件。
  4. 分布式系统:用于判断数据是否存在于分布式存储中。

五、Redis 集成布隆过滤器

Redis 从 4.0 版本开始支持布隆过滤器模块(RedisBloom),可以方便地在 Redis 中使用布隆过滤器。

  1. 安装 RedisBloom 模块

    下载并编译 RedisBloom 模块,然后在 Redis 配置文件中加载该模块。

  2. 使用 RedisBloom

    通过 Redis 命令操作布隆过滤器,例如:

    • BF.ADD key element:添加元素到布隆过滤器。
    • BF.EXISTS key element:判断元素是否存在于布隆过滤器中。

示例代码:

# 添加元素
BF.ADD myfilter apple
BF.ADD myfilter banana# 判断元素是否存在
BF.EXISTS myfilter apple# 返回 1 (存在)
BF.EXISTS myfilter orange# 返回 0 (不存在)

六、Java 本地内存使用布隆过滤器

在 Java 中,可以使用 Guava 库实现布隆过滤器。

  1. 引入 Guava 依赖

    在 Maven 项目中添加 Guava 依赖:

    <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>31.0.1-jre</version>
    </dependency>
    
  2. 使用 Guava 布隆过滤器

    示例代码:

    import com.google.common.hash.BloomFilter;
    import com.google.common.hash.Funnels;publicclassGuavaBloomFilterExample {
    publicstaticvoidmain(String[] args) {
    // 创建布隆过滤器,预期元素数量为 1000,误判率为 0.01BloomFilter<String> bloomFilter = BloomFilter.create(Funnels.stringFunnel(), 1000, 0.01);// 添加元素bloomFilter.put("apple");bloomFilter.put("banana");// 判断元素是否存在System.out.println("Contains apple: " + bloomFilter.mightContain("apple"));// trueSystem.out.println("Contains orange: " + bloomFilter.mightContain("orange"));// false}
    }
    

七、Java 集成 Redis 使用布隆过滤器

在 Java 中,可以通过 Jedis 或 Lettuce 库操作 Redis 中的布隆过滤器。

  1. 引入 Jedis 依赖

    在 Maven 项目中添加 Jedis 依赖:

    <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>4.2.3</version>
    </dependency>
    
  2. 使用 Jedis 操作 RedisBloom

    示例代码:

    import redis.clients.jedis.Jedis;
    import redis.clients.jedis.bloom.BFInsertParams;
    import redis.clients.jedis.bloom.BFReserveParams;publicclassRedisBloomFilterExample {
    publicstaticvoidmain(String[] args) {
    // 连接 RedisJedis jedis =newJedis("localhost", 6379);// 创建布隆过滤器jedis.bfReserve("myfilter", 0.01, 1000);// 添加元素jedis.bfAdd("myfilter", "apple");jedis.bfAdd("myfilter", "banana");// 判断元素是否存在System.out.println("Contains apple: " + jedis.bfExists("myfilter", "apple"));// trueSystem.out.println("Contains orange: " + jedis.bfExists("myfilter", "orange"));// false// 关闭连接jedis.close();}
    }
    

八、总结

布隆过滤器是一种高效、空间节省的数据结构,特别适用于需要快速判断元素是否存在的场景。尽管存在一定的误判率,但其在缓存系统、网络爬虫和分布式系统等领域的应用价值不可忽视。通过合理调整参数和优化实现,布隆过滤器可以成为处理大规模数据的利器。

相关文章:

布隆过滤器:高效的数据结构与应用详解

引言 在处理大规模数据时&#xff0c;如何高效地判断某个元素是否存在于集合中是一个常见问题。传统的数据结构&#xff08;如哈希表&#xff09;虽然可以解决这一问题&#xff0c;但在存储空间和查询效率上可能存在瓶颈。布隆过滤器&#xff08;Bloom Filter&#xff09;作为…...

【免杀】C2免杀 | 概念篇

一、什么是 C2 ? Command and Control&#xff08;命令与控制&#xff09;的缩写&#xff0c;是指攻击者用来远程控制被入侵设备&#xff08;如计算机、服务器等&#xff09;的通信架构。C2 攻击 是指攻击者在目标系统中植入远程控制恶意软件&#xff08;如木马、僵尸网络、后…...

期刊论文写作注意点

下面给出关于期刊写作的几个关键注意点 一、摘要突出创新点 最重要的是论文的摘要&#xff0c;因为在论文送审的时候&#xff0c;编辑如果没有时间&#xff0c;最先看的就是摘要。摘要要写好。如果投的是顶刊&#xff0c;在摘要里面尽量不要写是在什么方法的基础上进行改进之类…...

范式之殇-关系代数与参照完整性在 Web 后台的落寞

最近参加了一个PostgreSQL相关的茶会&#xff0c;感慨良多。原本话题是PostgreSQL 在 SELECT 场景中凭借其成熟的查询优化器、丰富的功能特性和灵活的执行策略&#xff0c;展现出显著优势。在窗口函数&#xff08;Window Functions&#xff09;、JOIN 优化、公共表表达式&#…...

CST矩形喇叭建模

​本文介绍了在电磁仿真软件中创建喇叭天线模型的基本步骤。 点击工具栏的Basic Shapes > Brick创建两个长方体&#xff08;波导部分和喇叭横截面&#xff09; 点击相对的两个平面&#xff0c;选择Loft命令进行渐变连接 将三者boolen合并 挖去中间实体&#xff0c;先后选…...

Python MNE-Python 脑功能磁共振数据分析

一、什​​么​​是​​Python MNE-Python 脑​​功​​能​​磁​​共​​振​​数​​据​​分​​析 为大脑功能磁共振成像数据分析工具&#xff0c;致力于为神经科学研究提供便捷、高效的数据分析处理工具。MNE-Python提供了处理和分析脑电图&#xff08;EEG&#xff09;、…...

JVM之内存管理(一)

部分内容来源&#xff1a;JavaGuide二哥Java 图解JVM内存结构 内存管理快速复习 栈帧&#xff1a;局部变量表&#xff0c;动态链接&#xff08;符号引用转为真实引用&#xff09;&#xff0c;操作数栈&#xff08;存储中间结算结果&#xff09;&#xff0c;方法返回地址 运行时…...

【AI入门】CherryStudio入门7:引入魔搭中的MCP服务

前言 来吧&#xff0c;继续CherryStudio的实践&#xff0c;前边给Cherry Studio添加知识库&#xff0c;对接思源笔记&#xff0c;以及obsidian笔记&#xff0c;设置了mcp-auto-install 自动安装包服务&#xff0c;本节让我们把魔搭中的MCP服务同步过来&#x1f604;&#x1f6…...

高性能Python Web 框架--FastAPI 学习「基础 → 进阶 → 生产级」

以下是针对 FastAPI 的保姆级教程&#xff0c;包含核心概念、完整案例和关键注意事项&#xff0c;采用「基础 → 进阶 → 生产级」的三阶段教学法&#xff1a; 一、FastAPI介绍 FastAPI 是一个现代化的、高性能的 Python Web 框架&#xff0c;专门用于构建 APIs&#xff08;应…...

python小区物业管理系统-小区物业报修系统

目录 技术栈介绍具体实现截图系统设计研究方法&#xff1a;设计步骤设计流程核心代码部分展示研究方法详细视频演示试验方案论文大纲源码获取/详细视频演示 技术栈介绍 Django-SpringBoot-php-Node.js-flask 本课题的研究方法和研究步骤基本合理&#xff0c;难度适中&#xf…...

YOLO数据集标注工具LabelImg(打包Exe版本及使用)

前言&#xff1a; 在计算机视觉领域&#xff0c;YOLO(You Only Look Once)系列算法因其出色的实时目标检测性能而广受欢迎。然而&#xff0c;要训练一个精准的YOLO模型&#xff0c;高质量的数据标注(labling)是不可或缺的基础工作。 LabelImage 是一个开源的图像标注工具&…...

【NCCL】DBT算法(double binary tree,双二叉树)

目录 前言 ring 不足&#xff0c;需要 tree 朴素二叉tree只利用了一半带宽&#xff0c;需要 双二叉 tree 双二叉树的构造 ringvs 双二叉树 测试 ring和tree的选择 nccl tree tree搜索 基本概念解释 最大化局部性构建二叉树的方式 这种构建方式的好处 示例说明 前言…...

Java大师成长计划之第16天:高级并发工具类

&#x1f4e2; 友情提示&#xff1a; 本文由银河易创AI&#xff08;https://ai.eaigx.com&#xff09;平台gpt-4o-mini模型辅助创作完成&#xff0c;旨在提供灵感参考与技术分享&#xff0c;文中关键数据、代码与结论建议通过官方渠道验证。 在现代Java应用中&#xff0c;处理并…...

【C/C++】C语⾔内存函数

C语言内存函数 1. memcpy使用和模拟实现 memcpy可以代替strcpy void * memcpy ( void * destination, const void * source, size_t num );//void*来接受任意指针,size_t 单位是字节 //memcpy的头文件为<string.h> mem是memory的缩写 是内存的意思功能&#xff1a; …...

SQL JOIN 关联条件和 where 条件的异同

Inner join 对于 inner join&#xff0c;条件写到 on 和 where 部分是一样的。 select count(1) from web_site join web_page on web_site_skwp_web_page_id where web_cityPleasant Hill and wp_access_date_sk1;输出 0select count(1)from web_site join web_page on web…...

kotlin 数据类

一 kotlin数据类与java普通类区别 Kotlin 的 data class 与 Java 中的普通类&#xff08;POJO&#xff09;相比&#xff0c;确实大大减少了样板代码&#xff08;boilerplate&#xff09;&#xff0c;但它的优势不止于自动生成 getter/setter、copy()、equals()、toString()&am…...

云效 MCP Server:AI 驱动的研发协作新范式

作者&#xff1a;黄博文、李晔彬 云效 MCP Server 是什么&#xff1f; 云效 MCP&#xff08;Model Context Protocol&#xff09;是阿里云云效平台推出的模型上下文协议标准化接口系统&#xff0c;作为连接 AI 助手与 DevOps 平台的核心桥梁&#xff0c;通过模型上下文协议将…...

复合机器人案例启示:富唯智能如何以模块化创新引领工业自动化新标杆

在国产工业机器人加速突围的浪潮中&#xff0c;富唯智能复合机器人案例凭借其高精度焊接与智能控制技术&#xff0c;成为行业标杆。然而&#xff0c;随着制造业对柔性化、全场景协作需求的升级&#xff0c;复合机器人正从单一功能向多模态协同进化。作为这一领域的创新者&#…...

信息系统项目管理师-软考高级(软考高项)​​​​​​​​​​​2025最新(十三)(1)

个人笔记整理---仅供参考 信息系统项目理师-软考高级&#xff08;软考高项&#xff09;​​​​2025最新&#xff08;十三&#xff09;&#xff08;1&#xff09;第十三章项目资源管理 13.0资源管理概述 13.1管理基础 团队发展阶段背下来 13.2项目资源管理过程 13.3规划资源管...

archlinux 详解系统层面

Arch Linux 深度解析&#xff1a;从设计哲学到系统架构 一、Arch Linux 概述&#xff1a;滚动发行的极客之选 Arch Linux 是一款以 滚动更新&#xff08;Rolling Release&#xff09; 为核心特性的 Linux 发行版&#xff0c;强调 轻量、灵活、高度可定制&#xff0c;旨在让用…...

⭐️⭐️⭐️【课时1:大模型是什么?】学习总结 ⭐️⭐️⭐️ for《大模型Clouder认证:基于百炼平台构建智能体应用》认证

一、学习目标 概要 通过学习《课时1:大模型是什么?》,全面了解大模型的基础概念、核心特点、发展脉络及阿里云在大模型领域的布局,为后续基于百炼平台构建智能体应用的实践操作打下坚实的理论基础。 具体目标列表 理解人工智能到大模型的演变逻辑,明确大模型在AI发展历…...

qxl显卡与spice模块笔记

1、qxl虚拟显卡设备创建QemuConsole&#xff0c;并保存在全局变量consoles链表中。 static void qxl_realize_primary(PCIDevice *dev, Error **errp) {PCIQXLDevice *qxl PCI_QXL(dev);VGACommonState *vga &qxl->vga;Error *local_err NULL;qxl_init_ramsize(qxl)…...

Rust 官方文档:人话版翻译指南

鉴于大部分翻译文档都不太会说人话&#xff0c;本专栏主要内容为 rust 程序设计语言、rust 参考手册、std 库 等官方文档的中译中。...

切比雪夫不等式专题习题解析

切比雪夫不等式专题习题解析 前言 本文为概率论习题集专栏的切比雪夫不等式专题习题解析,针对习题篇中的10道题目提供详细解答。希望通过这些解析帮助大家深入理解切比雪夫不等式的应用和意义。 一、基础概念题解析 习题1解析: 错误。切比雪夫不等式适用于任何具有有限方…...

LearnOpenGL01:创建项目

基于LearnOpenGL 相关链接&#xff1a; 工程搭建 hello window 环境 UBUNTU GLFW3.3&#xff1a;负责创建窗口处理输入 GLAD&#xff1a;根据不同操作系统加载不同的OPENGL函数实现 安装GLFW以及编译项 sudo apt update sudo apt install cmake build-essential libglfw3-…...

基于论文《大规模电动汽车充换电设施可调能力聚合评估与预测》开发者说明文档

real_data_model.m 开发者说明文档 脚本概述 本MATLAB脚本实现了基于论文《大规模电动汽车充换电设施可调能力聚合评估与预测》(鲍志远&#xff0c;胡泽春)中提出的预测模型和评估方法。脚本使用真实的充电数据、天气数据和分时电价数据&#xff0c;实现了LSTM与线性模型混合…...

优雅草星云智控系统产品发布会前瞻:SNMP协议全设备开启指南-优雅草卓伊凡

优雅草星云智控系统产品发布会前瞻&#xff1a;SNMP协议全设备开启指南-优雅草卓伊凡 一、发布会重磅预告 1.1 星云智控系统发布会详情 优雅草科技将于2024年5月15日在成都市双流区天府国际生物城会议中心举办”星云智控系统产品发布会“。作为优雅草科技CTO&#xff0c;卓伊…...

【Python】Pycharm中安装库可靠的方法

博主需要在pycharm中安装Python需要的库&#xff0c;发现可以通过两个方法&#xff0c;一个是在terminal中安装&#xff0c;如下图&#xff1a; 另一个&#xff0c;是通过软件包安装。 博主发现&#xff0c;保险起见&#xff0c;还是通过软件包安装会比较稳妥。博主遇见一个库&…...

探索Stream流:高效数据处理的秘密武器

不可变集合 stream流 Stream流的使用步骤&#xff1a; 先得到一条Stream流&#xff08;流水线&#xff09;&#xff0c;并把数据放上去 使用中间方法对流水线上的数据进行操作 使用终结方法对流水线上的数据进行操作 Stream流的中间方法 注意1&#xff1a;中间方法&#xff0…...

Debezium RelationalSnapshotChangeEventSource详解

Debezium RelationalSnapshotChangeEventSource详解 1. 类的作用与功能 1.1 核心功能 RelationalSnapshotChangeEventSource是Debezium中用于关系型数据库快照的核心抽象类,主要负责: 数据快照:对数据库表进行全量数据快照模式捕获:捕获数据库表结构事务管理:确保快照过…...

Open CASCADE学习|实现裁剪操作

1. 引言 Open CASCADE (简称OCC) 是一个功能强大的开源几何建模内核&#xff0c;广泛应用于CAD/CAM/CAE领域。裁剪操作作为几何建模中的基础功能&#xff0c;在模型编辑、布尔运算、几何分析等方面有着重要作用。本文将全面探讨Open CASCADE中的裁剪操作实现原理、应用场景及具…...

Microsoft Azure DevOps针对Angular项目创建build版本的yaml

Azure DevOps针对Angular项目创建build版本的yaml&#xff0c;并通过变量控制相应job的执行与否。 注意事项&#xff1a;代码前面的空格是通过Tab控制的而不是通过Space控制的。 yaml文件中包含一下内容&#xff1a; 1. 自动触发build 通过指定code branch使提交到此代码库的…...

Navicat 17最新保姆级安装教程(附安装包+永久使用方法)

前言 Navicat Premium 是一套可创建多个连接的数据库开发工具&#xff0c;让你从单一应用程序中同时连接 MySQL、MariaDB、MongoDB、SQL Server、Oracle、PostgreSQL 和 SQLite 。它与 OceanBase 数据库及 Amazon RDS、Amazon Aurora、Amazon Redshift、Microsoft Azure、Orac…...

在 Kotlin 中什么是委托属性,简要说说其使用场景和原理

在 Kotlin 中&#xff0c;属性委托和类委托是两种通过 by 关键字实现的强大特性&#xff0c;它们通过“委托”机制将行为或实现逻辑委托给其他对象&#xff0c;从而实现代码的复用和解耦。 1 属性委托 定义&#xff1a; 允许把属性的 get 和 set 方法的具体实现委托给另一个对…...

[Windows] 东芝存储诊断工具1.30.8920(20170601)

[Windows] 东芝存储诊断工具 链接&#xff1a;https://pan.xunlei.com/s/VOPpMjGdWZOLceIjxLNiIsIEA1?pwduute# 适用型号 东芝消费类存储产品&#xff1a; 外置硬盘&#xff1a;Canvio 系列 内置硬盘&#xff1a;HDW****&#xff08;E300 / N300 / P300 / S300 / V300 / X30…...

按位段拼接十六进制

需求&#xff1a; 给一组位段及对应的值&#xff0c;拼接出该十六进制值。 如&#xff0c; [15] : 0x1 [31:16] : 0xfafa [14:1] : 0x1af0 [0:0] : 0x1 def parse_range(range_str):"""解析位段字符串&#xff0c;返回高位和低位"""parts…...

FPGA 41 ,ICMP 协议详细解析之构建网络诊断系统( ICMP 协议与 IP 协议理论详细解析 )

目录 前言 一、ICMP协议介绍 1.1 ICMP协议介绍 1.2 ICMP报文格式 1.3 ICMP地位流程 1.4 为何需要ICMP差错报文 1.5 协议关系 二、FPGA 与 ICMP 2.1 平台选择与环境搭建 2.2 模块化设计 2.3 ICMP 功能设计 &#xff08;1&#xff09;ICMP 报文解析 &#xff08;2&am…...

每天批次导入 100 万对账数据到 MySQL 时出现死锁

一、死锁原因及优化策略 1.1 死锁原因分析 批量插入事务过大&#xff1a; Spring Batch 默认将整个 chunk&#xff08;批量数据块&#xff09;作为一个事务提交&#xff0c;100 万数据可能导致事务过长&#xff0c;增加锁竞争。 并发写入冲突&#xff1a; 多个线程或批处理作…...

滑动窗口-窗口中的最大/小值-单调队列

求窗口的最大值 #include <iostream> //滑动窗口最大值用单调队列q[]&#xff0c;q存储候选最大值的下标 //队列头是最大值的下标 using namespace std; const int N100010; int nums[N],q[N]; int hh0,tt-1;// hh 是队头指针&#xff0c;tt 是队尾指针&#xff0c;初始…...

Docker Compose 部署 MeiliSearch 指南

Docker Compose 部署 MeiliSearch 指南 目录 环境准备创建 MeiliSearch 配置文件启动 MeiliSearch 服务验证服务状态访问 MeiliSearch安全及防火墙设置...

在 MyBatis 中实现控制台输出 SQL 参数

在 MyBatis 中实现控制台输出 SQL 参数&#xff0c;可通过以下方案实现&#xff1a; # 一、使用 MyBatis-Plus 的 SqlLogInterceptor&#xff08;推荐&#xff09; ‌适用场景‌&#xff1a;项目已集成 MyBatis-Plus&#xff08;3.5.3版本&#xff09; ‌配置步骤‌&#xff…...

【MySQL】数据库、数据表的基本操作

个人主页&#xff1a;Guiat 归属专栏&#xff1a;MySQL 文章目录 1. MySQL基础命令1.1 连接MySQL1.2 基本命令概览 2. 数据库操作2.1 创建数据库2.2 查看数据库2.3 选择数据库2.4 修改数据库2.5 删除数据库2.6 数据库备份与恢复 3. 表操作基础3.1 创建表3.2 查看表信息3.3 创建…...

Java中的内部类详解

目录 什么是内部类&#xff1f; 生活中的内部类例子 为什么需要内部类&#xff1f; 生活中的例子 内部类的存在意义 内部类的分类 1. 成员内部类 什么是成员内部类&#xff1f; 成员内部类的特点 如何使用成员内部类&#xff1f; 成员内部类访问外部类同名成员 2. …...

【LangChain全栈开发指南】从LLM集成到智能体系统构建

目录 &#x1f31f; 前言&#x1f3d7;️ 技术背景与价值&#x1f4a2; 当前技术痛点&#x1f6e0;️ 解决方案概述&#x1f465; 目标读者说明 &#x1f50d; 一、技术原理剖析&#x1f4ca; 核心概念图解&#x1f4a1; 核心作用讲解&#x1f9e9; 关键技术模块说明⚖️ 技术选…...

《内存单位:解锁数字世界的“度量衡”》

&#x1f680;个人主页&#xff1a;BabyZZの秘密日记 &#x1f4d6;收入专栏&#xff1a;C语言 &#x1f30d;文章目入 一、基础单位&#xff1a;字节&#xff08;Byte&#xff09;二、进阶单位&#xff1a;千字节&#xff08;KB&#xff09;、兆字节&#xff08;MB&#xff09…...

Spring Boot + MyBatis-Plus 高并发读写分离实战

引言 在高并发场景下&#xff0c;单一数据库实例往往成为性能瓶颈。数据库读写分离通过将读操作和写操作分配到不同的数据库实例&#xff0c;有效缓解主库压力&#xff0c;提升系统吞吐量。MyBatis-Plus 作为一款强大的持久层框架&#xff0c;结合 Spring Boot 能够轻松实现读…...

STC32G12K128-旋转编码器-软件去抖

STC32G12K128-旋转编码器-软件去抖 简介代码 简介 EC11旋转编码器是一种可以连续旋转的器件A,B,C为旋转编码引脚&#xff0c;带按键的有D,E引脚。引脚功能&#xff1a; A&#xff1a;编码器A相&#xff1b;B&#xff1a;编码器B相&#xff1b;C&#xff1a;公共端-一般接到GN…...

第J7周:对于ResNeXt-50算法的思考

目录 思考 一、代码功能分析 1. 构建 shortcut 分支&#xff08;残差连接的旁路&#xff09; 2. 主路径的第一层卷积&#xff08;11&#xff09; 4. 主路径的第三层卷积&#xff08;11&#xff09; 5. 残差连接 激活函数 二、问题分析总结&#xff1a;残差结构中通道数不一致的…...

古方焕新潮!李良济盒马联名养生水,以创新赋能中式养生新潮流

今天下午&#xff0c;中华老字号李良济与新零售巨头盒马联名的“五汁饮&暑清元气水”新品发布会&#xff0c;在李良济隆重举行。 新品发布会上&#xff0c;盒马与多家媒体齐聚李良济&#xff0c;通过中医文化体验、新品品鉴、生产全链路探秘、媒体采访等环节&#xff0c;不…...

使用PyTorch训练马里奥强化学习代理的完整指南

以下是使用PyTorch训练马里奥强化学习代理的完整指南&#xff0c;涵盖依赖库配置、环境搭建、核心代码实现及输出结果分析&#xff0c;结合关键优化策略与实战经验。 一、依赖库配置 基础环境安装 # 使用Anaconda创建虚拟环境&#xff08;推荐&#xff09; conda create -n m…...