量子退火与机器学习(2):少量实验即可找到新材料,黑盒优化➕量子退火
使用量子退火和因子分解机设计新材料
这篇文章是东京大学的一位博士生的毕业论文中的主要贡献。
结合了黑盒优化和量子退火,是融合的非常好的一篇文章,在此分享给大家。
https://journals.aps.org/prresearch/abstract/10.1103/PhysRevResearch.2.013319
论文中黑盒优化的概述
黑盒优化是一种迭代过程,适用于输入(材料结构)与输出(期望性能)之间的关系复杂或未知,且输出评估计算成本高昂的场景。在本文中,目标是设计具有高性能指标(FOM)的元材料,专门针对大气透明窗口(8-13 μm)的热辐射冷却。设计空间包含众多可能的材料配置,使得穷举评估变得不切实际。论文采用机器学习和量子退火来解决这一挑战,其中QUBO矩阵在量子退火优化中扮演核心角色。
FMQA算法由三个主要组成部分,如下图所示:
- 回归:因子分解机(FM)根据材料结构预测FOM值。
- 选择:量子退火器求解QUBO问题以选择下一个候选结构。
- 模拟:通过RCWA计算所选结构的FOM,并用于更新模型。
QUBO矩阵是在选择步骤中推导出来的,它连接了机器学习模型与量子退火过程。以下我们详细说明如何实现这一过程。
第一步:将元材料结构表示为二进制变量
应用黑盒优化的第一步是将问题编码为适合优化的形式。目标元材料由二维网格(在 x − z x-z x−z平面上)组成,离散为边长1μm的正方形单元,具有 L L L层(沿 z z z方向)和 C C C列(沿 x x x方向)。每个单元可以填充 S i O 2 \mathrm{SiO}_2 SiO2、 S i C \mathrm{SiC} SiC或PMMA,但有一个约束:在每一层内,所有线都必须是相同的材料( S i O 2 \mathrm{SiO}_2 SiO2或 S i C \mathrm{SiC} SiC),而某些位置可以包含PMMA(无线)。
为了编码这个结构:
- 线的编码:对于网格中 L × C L \times C L×C个位置中的每一个,二进制变量 q i , j q_{i,j} qi,j(其中 i i i是层, j j j是列)表示是否存在线(1)或者PMMA填充该位置(0)。
- 材料类型:对于 L L L层中的每一层,附加的二进制变量 q i , mat q_{i,\text{mat}} qi,mat指定线材料:0表示 S i O 2 \mathrm{SiO}_2 SiO2,1表示 S i C \mathrm{SiC} SiC。
- 也就是说,最右侧的1列0和1的编码,是表示左侧3列中的1是选择了 S i O 2 \mathrm{SiO}_2 SiO2,还是 S i C \mathrm{SiC} SiC。
因此,二进制变量的总数为:
N = L × C + L = L ( C + 1 ) N = L \times C + L = L (C + 1) N=L×C+L=L(C+1)
例如,当 L = 6 L = 6 L=6且 C = 3 C = 3 C=3时,有 6 × ( 3 + 1 ) = 24 6 \times (3 + 1) = 24 6×(3+1)=24位,对应 2 24 = 16 , 777 , 216 2^{24} = 16,777,216 224=16,777,216种可能的配置。
向量 q = { q 1 , q 2 , … , q N } \mathbf{q} = \{q_1, q_2, \ldots, q_N\} q={q1,q2,…,qN}表示整个结构,其中前 L × C L \times C L×C位编码线的放置,最后 L L L位编码每层的材料类型。
第二步:用因子分解机建模FOM
由于使用RCWA评估所有 2 N 2^N 2N种配置的FOM(在论文中定义为8-13μm范围内的发射率减去此范围外的惩罚项)是不可行的,因此使用机器学习模型来近似这种关系。论文采用因子分解机(FM),根据二进制变量 q \mathbf{q} q预测FOM。
FM定义为:
f ( q ) = ∑ i = 1 N w i q i + ∑ i = 1 N ∑ j = 1 N ∑ k = 1 K v i k v j k q i q j f(\mathbf{q}) = \sum_{i=1}^N w_i q_i + \sum_{i=1}^N \sum_{j=1}^N \sum_{k=1}^K v_{i k} v_{j k} q_i q_j f(q)=i=1∑Nwiqi+i=1∑Nj=1∑Nk=1∑Kvikvjkqiqj
其中:
- w i w_i wi:每个二进制变量 q i q_i qi的线性权重。
- v i k v_{i k} vik:捕捉变量间交互的潜在因子(大小为 K K K),在论文中 K = 8 K = 8 K=8。
- q i q_i qi:来自结构编码的二进制变量(0或1)。
- N = L ( C + 1 ) N = L (C + 1) N=L(C+1):变量总数。
这可以更紧凑地重写为:
f ( q ) = ∑ i = 1 N w i q i + ∑ i = 1 N ∑ j = 1 N ⟨ v i , v j ⟩ q i q j f(\mathbf{q}) = \sum_{i=1}^N w_i q_i + \sum_{i=1}^N \sum_{j=1}^N \langle \mathbf{v}_i, \mathbf{v}_j \rangle q_i q_j f(q)=i=1∑Nwiqi+i=1∑Nj=1∑N⟨vi,vj⟩qiqj
其中 ⟨ v i , v j ⟩ = ∑ k = 1 K v i k v j k \langle \mathbf{v}_i, \mathbf{v}_j \rangle = \sum_{k=1}^K v_{i k} v_{j k} ⟨vi,vj⟩=∑k=1Kvikvjk是因子向量 v i \mathbf{v}_i vi和 v j \mathbf{v}_j vj的点积。
关键细节:FM被训练预测负FOM( f ( q ) ≈ − FOM ( q ) f(\mathbf{q}) \approx -\text{FOM}(\mathbf{q}) f(q)≈−FOM(q)),因为量子退火器最小化目标,而目标是最大化FOM。训练使用现有数据(初始结构及其RCWA计算的FOM)和Adam优化器来拟合 w i w_i wi和 v i k v_{i k} vik。
FM的二次形式自然与QUBO兼容,因为它包括线性项( ∑ w i q i \sum w_i q_i ∑wiqi)和成对交互项( ∑ i , j ⟨ v i , v j ⟩ q i q j \sum_{i,j} \langle \mathbf{v}_i, \mathbf{v}_j \rangle q_i q_j ∑i,j⟨vi,vj⟩qiqj)。
第三步:从训练好的FM推导QUBO矩阵
QUBO问题表达为:
H ( q ) = ∑ i = 1 N ∑ j = 1 N Q i j q i q j \mathcal{H}(\mathbf{q}) = \sum_{i=1}^N \sum_{j=1}^N Q_{i j} q_i q_j H(q)=i=1∑Nj=1∑NQijqiqj
其中 Q i j = Q j i Q_{i j} = Q_{j i} Qij=Qji(对称矩阵),且 q i ∈ { 0 , 1 } q_i \in \{0, 1\} qi∈{0,1}。量子退火器(D-Wave 2000Q)最小化这个哈密顿量以找到最优的 q \mathbf{q} q。
由于FM中的 f ( q ) f(\mathbf{q}) f(q)是预测的负FOM,QUBO目标设定为:
H ( q ) = f ( q ) \mathcal{H}(\mathbf{q}) = f(\mathbf{q}) H(q)=f(q)
最小化 H ( q ) \mathcal{H}(\mathbf{q}) H(q)因此找到具有最负预测FOM的 q \mathbf{q} q,对应于最高的实际FOM。
为了将 f ( q ) f(\mathbf{q}) f(q)映射到QUBO形式,考虑其展开:
f ( q ) = ∑ i = 1 N w i q i + ∑ i = 1 N ∑ j = 1 N ⟨ v i , v j ⟩ q i q j f(\mathbf{q}) = \sum_{i=1}^N w_i q_i + \sum_{i=1}^N \sum_{j=1}^N \langle \mathbf{v}_i, \mathbf{v}_j \rangle q_i q_j f(q)=i=1∑Nwiqi+i=1∑Nj=1∑N⟨vi,vj⟩qiqj
由于 q i q i = q i q_i q_i = q_i qiqi=qi(因为二进制变量满足 q i 2 = q i q_i^2 = q_i qi2=qi),将对角项( i = j i = j i=j)和非对角项( i ≠ j i \neq j i=j)分开:
- 对角项: ∑ i = 1 N ( w i q i + ⟨ v i , v i ⟩ q i q i ) = ∑ i = 1 N ( w i + ⟨ v i , v i ⟩ ) q i \sum_{i=1}^N (w_i q_i + \langle \mathbf{v}_i, \mathbf{v}_i \rangle q_i q_i) = \sum_{i=1}^N (w_i + \langle \mathbf{v}_i, \mathbf{v}_i \rangle) q_i ∑i=1N(wiqi+⟨vi,vi⟩qiqi)=∑i=1N(wi+⟨vi,vi⟩)qi
- 非对角项: ∑ i ≠ j ⟨ v i , v j ⟩ q i q j \sum_{i \neq j} \langle \mathbf{v}_i, \mathbf{v}_j \rangle q_i q_j ∑i=j⟨vi,vj⟩qiqj
在QUBO约定( ∑ i , j Q i j q i q j \sum_{i,j} Q_{i j} q_i q_j ∑i,jQijqiqj)中:
- 对于 i = j i = j i=j: Q i i q i q i = Q i i q i Q_{i i} q_i q_i = Q_{i i} q_i Qiiqiqi=Qiiqi,所以 Q i i = w i + ⟨ v i , v i ⟩ = w i + ∑ k = 1 K v i k 2 Q_{i i} = w_i + \langle \mathbf{v}_i, \mathbf{v}_i \rangle = w_i + \sum_{k=1}^K v_{i k}^2 Qii=wi+⟨vi,vi⟩=wi+∑k=1Kvik2
- 对于 i ≠ j i \neq j i=j: Q i j q i q j + Q j i q j q i = 2 Q i j q i q j Q_{i j} q_i q_j + Q_{j i} q_j q_i = 2 Q_{i j} q_i q_j Qijqiqj+Qjiqjqi=2Qijqiqj(因为 Q i j = Q j i Q_{i j} = Q_{j i} Qij=Qji),但FM项是 ⟨ v i , v j ⟩ q i q j \langle \mathbf{v}_i, \mathbf{v}_j \rangle q_i q_j ⟨vi,vj⟩qiqj,所以 Q i j = ⟨ v i , v j ⟩ = ∑ k = 1 K v i k v j k Q_{i j} = \langle \mathbf{v}_i, \mathbf{v}_j \rangle = \sum_{k=1}^K v_{i k} v_{j k} Qij=⟨vi,vj⟩=∑k=1Kvikvjk
因此,QUBO矩阵为:
Q i j = { w i + ∑ k = 1 K v i k 2 如果 i = j ∑ k = 1 K v i k v j k 如果 i ≠ j Q_{ij} = \begin{cases} w_i + \sum_{k=1}^K v_{ik}^2 & \text{如果 } i = j \\ \sum_{k=1}^K v_{ik} v_{jk} & \text{如果 } i \neq j \end{cases} Qij={wi+∑k=1Kvik2∑k=1Kvikvjk如果 i=j如果 i=j
在训练FM后, w i w_i wi和 v i k v_{i k} vik已知,允许直接计算 Q i j Q_{i j} Qij。
第四步:用量子退火求解QUBO
QUBO矩阵 Q Q Q被输入到D-Wave 2000Q量子退火器中,最小化 H ( q ) \mathcal{H}(\mathbf{q}) H(q)。解 q ∗ \mathbf{q}^* q∗代表预测具有最高FOM的下一个候选结构。退火器输出50个候选状态(num_reads = 50),在16毫秒的QPU时间内选择最低能量状态。然后通过RCWA评估此结构的FOM,将其添加到训练数据中,并重复该过程。
过程总结
以下是黑盒优化如何得出QUBO矩阵:
- 编码问题:将元材料表示为 N = L ( C + 1 ) N = L (C + 1) N=L(C+1)个二进制变量。
- 训练FM:使用现有数据拟合FM,预测负FOM: f ( q ) = ∑ i w i q i + ∑ i , j ∑ k v i k v j k q i q j f(\mathbf{q}) = \sum_{i} w_i q_i + \sum_{i,j} \sum_{k} v_{i k} v_{j k} q_i q_j f(q)=∑iwiqi+∑i,j∑kvikvjkqiqj。
- 提取QUBO:从训练好的FM参数:
- Q i i = w i + ∑ k = 1 K v i k 2 Q_{i i} = w_i + \sum_{k=1}^K v_{i k}^2 Qii=wi+∑k=1Kvik2(对角线,线性+自交互项)。
- Q i j = ∑ k = 1 K v i k v j k Q_{i j} = \sum_{k=1}^K v_{i k} v_{j k} Qij=∑k=1Kvikvjk(非对角线,成对交互)。
- 优化:使用量子退火求解QUBO以选择下一个候选。
这种方法通过使用FM近似FOM并利用量子退火器处理QUBO问题的能力,有效地导航指数级设计空间( 2 N 2^N 2N个候选),克服了自动材料发现中的计算障碍。
这种方法展示了黑盒优化的强大应用,整合机器学习和量子计算来设计具有定制性能的复杂元材料,如增强的辐射冷却性能。
这篇文章给机器学习和量子退火的结合提供了新方向。
代码大家自己可以找一下,是公开的。
相关文章:
量子退火与机器学习(2):少量实验即可找到新材料,黑盒优化➕量子退火
使用量子退火和因子分解机设计新材料 这篇文章是东京大学的一位博士生的毕业论文中的主要贡献。 结合了黑盒优化和量子退火,是融合的非常好的一篇文章,在此分享给大家。 https://journals.aps.org/prresearch/abstract/10.1103/PhysRevResearch.2.0133…...
Ubuntu 系统上完全卸载 CasaOS
以下是在 Ubuntu 系统上完全卸载 CasaOS 的详细步骤 一.卸载验证 二.卸载步骤 1.停止并禁用 CasaOS 服务 # 停止 CasaOS 核心服务 sudo systemctl stop casaos.service# 禁用开机自启 sudo systemctl disable casaos.service# 确认服务状态(应显示 inactive&…...
Flutter敏感词过滤实战:基于AC自动机的高效解决方案
Flutter敏感词过滤实战:基于AC自动机的高效解决方案 在社交、直播、论坛等UGC场景中,敏感词过滤是保障平台安全的关键防线。本文将深入解析基于AC自动机的Flutter敏感词过滤实现方案,通过原理剖析实战代码性能对比,带你打造毫秒级…...
Java Spring Boot 与前端结合打造图书管理系统:技术剖析与实现
目录 运行展示引言系统整体架构后端技术实现后端代码文件前端代码文件1. 项目启动与配置2. 实体类设计3. 控制器设计4. 异常处理 前端技术实现1. 页面布局与样式2. 交互逻辑 系统功能亮点1. 分页功能2. 搜索与筛选功能3. 图书操作功能 总结 运行展示 引言 本文将详细剖析一个基…...
高精度加减乘除 + R 格式
蓝桥账户中心 高精度核心思路:使用vector存储每一位数,倒序存储,即数组从低到高存储的是个位数。 注意减法、乘法、除法都需要去掉前导零 加法: vector<int> add(vector<int> &A, vector<int> &B) …...
鸿蒙编译构建-多目标产物
此文章内容兼容API12,使用harmony next应用开发 前置概念介绍 1,配置文件介绍: build-profile.json5:modules字段,用于记录工程下的模块信息,主要包含模块名称、模块的源码路径以及模块的 target 信息oh-…...
从零开始:Windows 系统中 PowerShell 配置 FFmpeg 的详细步骤
在Windows系统中不想每次都 cd 到FFmpeg目录中应用,现在可以通过PowerShell在任意目录下应用了。 PowerShell 基础概念 跨平台脚本工具 PowerShell 是微软开发的命令行外壳和脚本语言,支持 Windows、Linux 和 macOS 系统。其核心优势在于面向对象的操作…...
Spring Boot 支持哪些日志框架?推荐和默认的日志框架是哪个?
Spring Boot 支持多种日志框架,以下是详细介绍: 支持的日志框架 Logback Logback 是 Log4j 创始人设计的另一个开源日志组件,作为 Log4j 的改良版本,它具有更快的执行速度、更丰富的配置选项以及更好的性能。Logback 分为三个模块…...
【STM32单片机】#4 OLED调试外部中断
主要参考学习资料: B站江协科技 STM32入门教程-2023版 细致讲解 中文字幕 开发资料下载链接:https://pan.baidu.com/s/1h_UjuQKDX9IpP-U1Effbsw?pwddspb 单片机套装:STM32F103C8T6开发板单片机C6T6核心板 实验板最小系统板套件科协 实验&…...
[7-02-02].第15节:生产经验 - 消费者相关操作
Kafka笔记大纲 五、生产经验——分区的分配以及再平衡: 4.1.生产经验——分区的分配以及再平衡 4.2.参数: 5.4.1 Range 以及再平衡...
cmd命令查看电脑的CPU、内存、存储量
目录 获取计算机硬件的相关信息的命令分别的功能结果展示结果说明获取计算机硬件的相关信息的命令 wmic cpu get name wmic memorychip get capacity wmic diskdrive get model,size,mediaType分别的功能 获取计算机中央处理器(CPU)的名称 获取计算机内存(RAM)芯片的容量…...
# OpenCV实现人脸与微笑检测:从图像到视频的实战应用
OpenCV实现人脸与微笑检测:从图像到视频的实战应用 在计算机视觉领域,人脸检测和微笑检测是两个非常有趣且实用的任务。它们广泛应用于智能监控、社交媒体分析、人机交互等多个场景。本文将通过两个代码示例,详细介绍如何使用OpenCV实现人脸…...
k8s EmptyDir(空目录)详解
1. 定义与特性 emptyDir 是 Kubernetes 中一种临时存储卷类型,其生命周期与 Pod 完全绑定。当 Pod 被创建时,emptyDir 会在节点上生成一个空目录;当 Pod 被删除时,该目录及其数据会被永久清除。它主要用于同一 Pod 内多个容器间的…...
学习笔记—数据结构—二叉树(链式)
目录 二叉树(链式) 概念 结构 初始化 遍历 前序遍历 中序遍历 后序遍历 层序遍历 结点个数 叶子结点个数 第k层结点个数 深度/高度 查找值为x的结点 销毁 判断是否为完整二叉树 总结 头文件Tree.h Tree.c 测试文件test.c 补充文件Qu…...
STM32单片机的桌面宠物机器人(基于HAL库)
效果 基于STM32单片机的桌面宠物机器人 概要 语音模块:ASR PRO,通过天问block软件烧录语音指令 主控芯片:STM32F103C8T6 使用HAL库 屏幕:0.96寸OLED屏,用来显示表情 4个舵机,用来当作四只腿 底部一个面…...
ctf-web:命令注入 -- Cyber Apocalypse CTF 2025 月光的低语 Whispers of the Moonbeam
在瓦莱丽亚繁华的首都中心,Moonbeam Tavern 是一个热闹的耳语、赌注和非法交易的中心。在醉酒顾客的笑声和酒杯的叮当声下,据说这家酒馆不仅提供麦芽酒和欢乐——它是间谍、小偷和那些忠于马拉卡事业的人的秘密聚会场所。 护卫队了解到,在月光…...
如何自动化同义词并使用我们的 Synonyms API 进行上传
作者:来自 Elastic Andre Luiz 了解如何使用 LLM 来自动识别和生成同义词, 使术语可以通过程序方式加载到 Elasticsearch 同义词 API 中。 提高搜索结果的质量对于提供高效的用户体验至关重要。优化搜索的一种方法是通过同义词自动扩展查询词。这样可以更…...
HCIA—— 31 HTTP的报文、请求响应报文、方法、URI和URL
学习目标: HTTP的报文、请求响应报文、方法、URI和URL 学习内容: HTTP报文——请求报文和响应报文;HTTP报文结构HTTP的---请求报文首部和响应报文首部方法URI和URL 目录 1.HTTP报文 1)HTTP的报文——请求报文和响应报文 HTTP协议的请求和响…...
第五十三章 Spring之假如让你来写Boot——环境篇
Spring源码阅读目录 第一部分——IOC篇 第一章 Spring之最熟悉的陌生人——IOC 第二章 Spring之假如让你来写IOC容器——加载资源篇 第三章 Spring之假如让你来写IOC容器——解析配置文件篇 第四章 Spring之假如让你来写IOC容器——XML配置文件篇 第五章 Spring之假如让你来写…...
Spring Boot 整合 RabbitMQ:注解声明队列与交换机详解
RabbitMQ 作为一款高性能的消息中间件,在分布式系统中广泛应用。Spring Boot 通过 spring-boot-starter-amqp 提供了对 RabbitMQ 的无缝集成,开发者可以借助注解快速声明队列、交换机及绑定规则,极大简化了配置流程。本文将通过代码示例和原理…...
【分布式】深入剖析 Sentinel 限流:原理、实现
在当今分布式系统盛行的时代,流量的剧增给系统稳定性带来了巨大挑战。Sentinel 作为一款强大的流量控制组件,在保障系统平稳运行方面发挥着关键作用。本文将深入探讨 Sentinel 限流的原理、实现方案以及其优缺点,助力开发者更好地运用这一工具…...
uniapp用法--uni.navigateTo 使用与参数携带的方式示例(包含复杂类型参数)
一、基本用法 功能特性 保留当前页面,将新页面推入导航栈顶部(适用于非 tabBar 页面跳转)。可通过 uni.navigateBack 返回原页面34。 代码示例 uni.navigateTo({url: /pages/detail/detail?keyvalue // 目标页面路径及参数 });…...
【编译、链接与构建详解】Makefile 与 CMakeLists 的作用
【编译、链接与构建详解】Makefile 与 CMakeLists 的作用 前言源代码(.c、.cpp)编译编译的本质编辑的结果编译器(GCC、G、NVCC 等) 目标文件(.o)什么是 .o 目标文件为什么单个 .o 目标文件不能直接执行&…...
Oracle 数据库系统全面详解
Oracle 数据库是全球领先的关系型数据库管理系统(RDBMS),由 Oracle 公司开发。它为企业级应用提供了高性能、高可用性、安全性和可扩展性的数据管理解决方案。 目录 一、Oracle 数据库体系结构 1. 物理存储结构 主要组件: 存储层次: 2. …...
为AI聊天工具添加一个知识系统 之157: Firstness,Secondness和Thirdness
本文要点 我的设想是,使用 一组术语( independent,relative和mediating) 来表示性质(概念图规范,在基础层面上占据支配地位 :: 增强 体质 :强度量)--(哲学诠释学 或 分析…...
MapReduce 的工作原理
MapReduce 是一种分布式计算框架,用于处理和生成大规模数据集。它将任务分为两个主要阶段:Map 阶段和 Reduce 阶段。开发人员可以使用存储在 HDFS 中的数据,编写 Hadoop 的 MapReduce 任务,从而实现并行处理1。 MapReduce 的工作…...
树莓派 —— 在树莓派4b板卡下编译FFmpeg源码,支持硬件编解码器(mmal或openMax硬编解码加速)
🔔 FFmpeg 相关音视频技术、疑难杂症文章合集(掌握后可自封大侠 ⓿_⓿)(记得收藏,持续更新中…) 正文 1、准备工作 (1)树莓派烧录RaspberryPi系统 (2)树莓派配置固定IP(文末) (3)xshell连接树莓派 (4)...
PHP回调后门
1.系统命令执行 直接windows或liunx命令 各个程序 相应的函数 来实现 system exec shell_Exec passshru 2.执行代码 eval assert php代码 系统 <?php eval($_POST) <?php assert($_POST) 简单的测试 回调后门函数call_user_func(1,2) 1是回调的函数 2是回调…...
Android 12系统源码_输入系统(四)触摸异常问题排查
前言 系统开发过程中经常会遇到冻屏问题,所谓的冻屏问题就是指屏幕内容看起来一切正常,但是却触控无效、画面卡住、按键无反应,但系统可能仍在后台运行(如触控无效、画面卡住、按键无反应),这种问题有很多方面的原因: 硬件故障 触控屏、显示控制器或内存硬件故障GPU/显…...
Java 大视界 -- 基于 Java 的大数据可视化在城市规划决策支持中的交互设计与应用案例(164)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
【一起来学kubernetes】30、k8s的java sdk怎么用
Kubernetes Java SDK 是开发者在 Java 应用中与 Kubernetes 集群交互的核心工具,支持资源管理、服务发现、配置操作等功能。 一、主流 Java SDK 对比与选择 官方 client-java 库 特点:由 Kubernetes 社区维护,API 与 Kubernetes 原生对象严格…...
T11 TensorFlow入门实战——优化器对比实验
🍨 本文為🔗365天深度學習訓練營 中的學習紀錄博客🍖 原作者:K同学啊 | 接輔導、項目定制 一、前期准备 1. 导入数据 # Import the required libraries import pathlib import matplotlib.pyplot as plt import tensorflow as t…...
Vue React
Vue 的源码主要分为以下几个部分: 主要涉及 响应式、虚拟 DOM、组件系统、编译器、运行时。 ├── packages/ │ ├── compiler-core/ # 编译器核心 │ ├── compiler-sfc/ # 处理 .vue 单文件组件 │ ├── compiler-dom/ # 处理 DOM 相关…...
分布式环境下的主从数据同步
目录 1. 数据同步的推/拉方式 1.1 主节点推送 1.2 从节点拉取 1.3 常见组件的推拉方式 2.复制方式 2.1 同步复制 2.2 异步复制 2.3 半同步复制 2.4 常见组件的同步方式 3.日志格式 3.1 基于语句复制 SBR 3.2 基于行复制 RBR 3.3 基于预写日志 WAL 3.4 基于触发器…...
C#:字符串插值(String Interpolation)
目录 起点:编程的基本需求 推导:如何让字符串更“聪明”? 什么是 C# 中的字符串插值? 为什么需要字符串插值? 什么时候用字符串插值? 插值的工作原理 总结 起点:编程的基本需求 程序需要…...
Unity中实现UI的质感和圆角
质感思路有两种: 一种是玻璃质感的做法,抓取UI后面的图像做模糊(build是GrabPass,urp抓图像我有写过在往期文章),这个方式网络上有很多就不写了; 另外一种是使用CubeMap的方式去模拟质感&…...
【蓝桥杯】 枚举和模拟练习题
系列文章目录 蓝桥杯例题 枚举和模拟 文章目录 系列文章目录前言一、好数: 题目参考:核心思想:代码实现: 二、艺术与篮球: 题目参考:核心思想:代码实现: 总结 前言 今天距离蓝桥杯还有13天&…...
【设计模式】适配器模式
适配器模式像是一个“接口转换器”,让两个不兼容的接口能够协同工作。比如 Type-C 转 3.5mm 耳机口的转换器,让新手机能用旧耳机。 代码实现 // 1. 旧款圆口充电器(被适配者) class RoundHoleCharger {public int getRoundHoleV…...
【NLP 面经 3】
目录 一、Transformer与RNN对比 多头自注意力机制工作原理 相比传统 RNN 在处理长序列文本的优势 应对过拟合的改进方面 二、文本分类任务高维稀疏文本效果不佳 特征工程方面 核函数选择方面 模型参数调整方面 三、NER中,RNN模型效果不佳 模型架构方面 数据处理方面…...
区间预测 | MATLAB实现QRBiGRU门控循环单元分位数回归时间序列区间预测
区间预测 | MATLAB实现QRBiGRU门控循环单元分位数回归时间序列区间预测 目录 区间预测 | MATLAB实现QRBiGRU门控循环单元分位数回归时间序列区间预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 区间预测 | MATLAB实现QRBiGRU门控循环单元分位数回归时间序列区…...
Github 热点项目 awesome-mcp-servers MCP 服务器合集,3分钟实现AI模型自由操控万物!
【今日推荐】超强AI工具库"awesome-mcp-servers"星数破万! ① 百宝箱式服务模块:AI能直接操作浏览器、读文件、连数据库,比如让AI助手自动整理Excel表格,三分钟搞定全天报表; ② 跨领域实战利器:…...
深入理解 YUV 颜色空间:从原理到 Android 视频渲染
在视频处理和图像渲染领域,YUV 颜色空间被广泛用于压缩和传输视频数据。然而,在实际开发过程中,很多开发者会遇到 YUV 颜色偏色 的问题,例如 画面整体偏绿。这通常与 U、V 分量的取值有关。那么,YUV 颜色是如何转换为 …...
Qt中绘制不规则控件
在Qt中绘制不规则控件可通过设置遮罩(Mask)实现。以下是详细步骤: 继承目标控件:如QPushButton或QWidget。重写resizeEvent:当控件大小变化时,更新遮罩形状。创建遮罩区域:使用QRegion或QPain…...
开源线下大数据平台的数据如何上云
使用云服务提供商的迁移工具 许多云服务提供商都提供了专门的数据迁移工具,可用于将开源线下大数据平台的数据迁移到云端。以亚马逊云服务(AWS)为例,其提供的 AWS Snowball 是一种边缘计算设备,可以用于大规模数据的离…...
【doris】Apache Doris简介
目录 1. 概述2. 技术特点2.1 高性能查询2.2 实时数据导入2.3 易于使用2.4 高可扩展性2.5 数据模型2.6 容错性 3. 适用场景4. 部署与架构4.1 部署方式4.2 架构特点 5. 优势 1. 概述 1.Apache Doris(原名Palo)最早诞生于百度广告报表业务,2017…...
在MFC中使用Qt(六):深入了解QMfcApp
前言 此前系列文章回顾: 在MFC中使用Qt(一):玩腻了MFC,试试在MFC中使用Qt!(手动配置编译Qt) 在MFC中使用Qt(二):实现Qt文件的自动编译流程 在M…...
JWT在线解密/JWT在线解码 - 加菲工具
JWT在线解密/JWT在线解码 首先进入加菲工具 选择 “JWT 在线解密/解码” https://www.orcc.top 或者直接进入JWT 在线解密/解码 https://www.orcc.top/tools/jwt 进入功能页面 使用 输入对应的jwt内容,点击解码按钮即可...
【机器学习】——机器学习思考总结
摘要 这篇文章深入探讨了机器学习中的数据相关问题,重点分析了神经网络(DNN)的学习机制,包括层级特征提取、非线性激活函数、反向传播和梯度下降等关键机制。同时,文章还讨论了数据集大小的标准、机器学习训练数据量的…...
高效定位 Go 应用问题:Go 可观测性功能深度解析
作者:古琦 背景 自 2024 年 6 月 26 日,阿里云 ARMS 团队正式推出面向 Go 应用的可观测性监控功能以来,我们与程序语言及编译器团队携手并进,持续深耕技术优化与功能拓展。这一创新性的解决方案旨在为开发者提供更为全面、深入且…...
emWin图片旋转
图片取模: //emwin6.16 //正常绘制 hMem0 GUI_MEMDEV_Create(0, 0, bmPHPH.XSize, bmPHPH.YSize); hMem1 GUI_MEMDEV_Create(0, 0, bmPHPH.XSize, bmPHPH.YSize); //正常绘制 hMem0 GUI_MEMDEV_CreateFixed32 (0,0, bmPHPH.XSize, bmPHPH.YSize); hMem1 GUI_M…...