深入解析ConvLoRA:如何通过卷积增强LoRA在SAM模型中的微调效率

news2026/3/14 4:24:39
1. 为什么SAM模型微调需要ConvLoRA如果你玩过Meta开源的Segment Anything ModelSAM大概率会有这样的体验这个模型在“分割一切”的通用能力上确实惊艳但当你把它拿到自己的具体任务上比如想让它精确分割医学影像中的特定器官或者遥感图像里的建筑物时效果可能就没那么理想了。你可能会想那我用自己领域的数据微调一下SAM不就行了但实际操作过的人都知道这事儿没那么简单。SAM模型本身非常庞大尤其是它的图像编码器是一个标准的Vision TransformerViT。直接全参数微调不仅需要海量的GPU内存训练时间也长得让人抓狂。更重要的是ViT这种结构在设计上就缺少了卷积神经网络CNN那种与生俱来的“局部视觉归纳偏置”。简单来说CNN天生就认为图像中相邻的像素是相关的这种先验知识对理解图像的空间结构、边缘、纹理至关重要。而ViT更擅长捕捉全局的、长距离的依赖关系但在处理需要精细局部感知的任务如像素级分割时这种“先天不足”就可能成为瓶颈。另一个关键问题是SAM的预训练任务。它本质上是一个“二值掩码预测”任务模型学习的是根据一个点或一个框去预测一个前景物体的粗略轮廓。这种预训练方式让SAM学会了强大的“提示-分割”泛化能力但也导致它可能没有充分学习到高级的、语义层面的图像信息。比如它可能分不清“猫”和“狗”在概念上的区别只知道它们都是“前景物体”。所以我们微调SAM的目标就很明确了既要保留它从海量数据中学到的强大分割先验知识又要给它“补补课”增强它对图像局部细节的感知能力并教会它理解我们特定任务中的高级语义比如“这是肿瘤”而不是“这是一块区域”。传统的LoRALow-Rank Adaptation技术通过在原始权重旁添加低秩矩阵来微调虽然大幅减少了参数量但它本质上还是在做线性变换无法为ViT注入我们急需的“卷积先验”。这就是ConvLoRA诞生的背景。它想解决的核心问题就是如何在保持LoRA参数高效性的同时让SAM的ViT编码器也能拥有CNN的“火眼金睛”从而在各类下游分割任务上获得质的提升。我试过在几个小数据集上跑实验直接用LoRA微调SAM效果提升有限但换上ConvLoRA后分割边界的精细度和对复杂语义类别的区分能力肉眼可见地变好了。2. ConvLoRA的核心设计当卷积遇见LoRAConvLoRA的设计思想非常巧妙它没有去动SAM主干网络那庞大的、已经预训练好的权重而是选择在LoRA的“旁路”结构上做文章。你可以把它理解成给SAM这个“学霸”请了一位专门辅导“图像局部感知”和“多尺度理解”的家教这位家教只教新知识不干扰学霸原有的知识体系。2.1 基本框架LoRA的优雅扩展首先我们得回顾一下LoRA是怎么工作的。对于一个预训练好的线性层比如Transformer里的Q/K/V投影矩阵它的前向传播公式是h Wx。LoRA在这旁边增加了一个低秩的旁路h Wx BAx。其中A是一个将输入从维度d降到低秩r的矩阵B是一个将维度从r升回d的矩阵。在微调时原始的W被冻结不更新只训练这个小小的A和B。这样一来需要训练的参数量就从d*d降到了2*d*r当r远小于d时参数量大幅减少。ConvLoRA完全遵循了这个框架。它没有改变LoRA“冻结主干、训练旁路”的核心原则保证了参数高效性。它的创新点在于没有让旁路BA仅仅是一个简单的线性变换而是将其设计成了一个包含卷积操作的、更复杂的微型网络。2.2 注入卷积先验从线性到空间感知ConvLoRA的关键一步是在低秩空间r维里引入卷积操作。具体来说在得到低维特征lora_res x A.T之后ConvLoRA不会直接把它喂给B矩阵升维。它会先把lora_res从[B, L, C]的形状重塑为[B, C, H, W]的图像格式这里LH*W是序列长度对应图像patch的数量。这一步操作相当于把ViT处理后的“一维序列”特征重新还原成具有空间二维结构的“特征图”。接下来魔法就发生在这个二维特征图上了。ConvLoRA会用一个或多个3x3的卷积核来处理它。3x3卷积是CNN的基石它能有效地捕捉像素与其八邻域之间的关系这正是我们想给ViT补充的“局部空间先验”。经过卷积处理后的特征再通过B矩阵投影回高维空间与原始输出相加。这个设计的精妙之处在于卷积操作被巧妙地限制在了低秩空间r维里。r通常很小比如4, 8, 16所以即使加上卷积新增的参数量主要是卷积核的权重也微乎其微完全符合参数高效微调PEFT的宗旨。但就是这“四两拨千斤”的改动让模型获得了感知局部细节和空间上下文的能力。实测下来这个改动对于提升分割边缘的平滑度和准确性特别有效。2.3 引入专家混合MoE多尺度特征理解如果只是加一个卷积ConvLoRA可能还不足以应对复杂多变的视觉场景。图像中的物体有大小之分细节有粗细之别。为了让模型能自适应地处理不同尺度的特征ConvLoRA借鉴了混合专家Mixture of Experts, MoE的思想。在ConvLoRA中它设计了多个并行的“卷积专家”。每个专家都是一个独立的3x3卷积层通常后面会跟一个GELU激活函数。但它们的“专长”不同有的专家擅长处理原尺度的特征有的专家则会在处理前先将特征图上采样比如放大2倍处理完后再下采样回来。这样不同的专家就自然地聚焦于不同感受野和尺度上的信息。那么对于输入的每一个特征图应该让哪个或哪几个专家来处理呢ConvLoRA引入了一个轻量级的“门控网络”。这个网络会根据当前输入特征的内容动态地计算出一组权重即“门控值”然后选择权重最高的前k个专家通常k1来处理输入最后将它们的输出按门控权重加权求和。这个过程是完全可微的可以和整个模型一起训练。门控网络的设计也很巧妙它通常就是一个全局平均池化层加上一个线性层。为了在训练初期鼓励所有专家都能被均衡地使用避免某些专家“躺平”论文中还加入了一个负载均衡损失Load Balance Loss这个损失会计入最终的总损失中。我在代码实现时发现这个损失项对于稳定训练、让所有专家都“学有所成”至关重要。3. 手把手解析ConvLoRA源码实现光讲原理可能还有点抽象我们直接深入到源码里看看ConvLoRA到底是怎么实现的。这里我结合自己的理解把核心代码掰开揉碎了讲。3.1 ConvLoRALinear核心模块一览ConvLoRA的主要逻辑都封装在ConvLoRALinear这个类里它继承了PyTorch的nn.Linear和前面定义的LoRALayer基类。这意味着它可以像普通线性层一样被插入到Transformer的任何线性层位置。class ConvLoRALinear(nn.Linear, LoRALayer): def __init__( self, in_features: int, out_features: int, r: int 0, lora_alpha: int 1, lora_dropout: float 0.0, fan_in_fan_out: bool False, merge_weights: bool False, conv_lora_expert_num: Optional[int] None, **kwargs, ): nn.Linear.__init__(self, in_features, out_features, **kwargs) LoRALayer.__init__(self, rr, lora_alphalora_alpha, lora_dropoutlora_dropout, merge_weightsmerge_weights) self.fan_in_fan_out fan_in_fan_out # Actual trainable parameters if r 0: self.lora_A nn.Parameter(self.weight.new_zeros((r, in_features))) self.lora_B nn.Parameter(self.weight.new_zeros((out_features, r))) self.scaling self.lora_alpha / self.r # Freezing the pre-trained weight matrix self.weight.requires_grad False # MoE-Conv topk 1 self.lora_moe_gating MoEGate(Mconv_lora_expert_num, dself.r, Ktopk) self.lora_moe_experts nn.ModuleList([]) self.upsample_ratios list(range(1, conv_lora_expert_num 1)) for upsample_ratio in self.upsample_ratios: expert nn.Conv2d(in_channelsr, out_channelsr, kernel_size3, stride1, padding1, biasTrue) expert.bias.data.zero_() self.lora_moe_experts.append(nn.Sequential(expert, nn.GELU())) self.num_experts conv_lora_expert_num self.multiply_by_gates False self.reset_parameters()初始化部分有几个关键点LoRA参数lora_A和lora_B就是标准的低秩矩阵。scaling是一个缩放因子用于控制旁路更新的强度通常设置为lora_alpha/r。冻结主权重self.weight.requires_grad False确保了原始预训练权重不被更新这是LoRA的基石。MoE-Conv初始化lora_moe_gating: 门控网络负责为每个输入样本选择专家。lora_moe_experts: 一个模块列表包含了所有卷积专家。每个专家就是一个3x3卷积 GELU激活的简单序列。upsample_ratios: 定义了每个专家对应的上采样比例。例如如果有4个专家比例就是[1, 2, 3, 4]。比例为1的专家处理原尺度特征比例为2的专家会先将特征图上采样2倍处理后再下采样回来。这实现了多尺度处理。topk 1: 这意味着每次前向传播只激活一个专家Top-1 Gating。这是MoE中常用的策略可以在保持性能的同时最大化计算效率。3.2 前向传播动态路由与多尺度卷积前向传播过程是ConvLoRA的精华所在它清晰地展示了输入是如何经过低秩投影、空间重塑、门控路由、多尺度卷积处理最后再融合回主路径的。def forward(self, x: torch.Tensor): # 1. 原始主路径计算 result F.linear(x, self.T(self.weight), biasself.bias) if self.r 0: # 2. LoRA旁路降维 lora_res self.lora_dropout(x) self.lora_A.T # 3. 重塑为特征图 (B, C, H, W) dim lora_res.dim() if dim 3: # 典型情况来自Transformer的序列输出 B, L, C lora_res.size() H W int(math.sqrt(L)) lora_res lora_res.reshape(B, H, W, C) else: H, W lora_res.size()[1:3] lora_res lora_res.permute(0, 3, 1, 2).contiguous() # 4. 门控网络计算 gates, moe_loss self.lora_moe_gating(lora_res) # 5. 稀疏分发根据门控值将输入分发给选中的专家 dispatcher SparseDispatcher(self.num_experts, gates) expert_inputs dispatcher.dispatch(lora_res) expert_outputs [] # 6. 各专家并行处理 for i in range(self.num_experts): if len(expert_inputs[i]) 0: # 该专家未被选中 continue upsample_ratio self.upsample_ratios[i] cur_res expert_inputs[i] # 上采样如果比例不为1 if upsample_ratio ! 1: cur_res F.interpolate(cur_res, scale_factorupsample_ratio, modebicubic) # 卷积专家处理 cur_res self.lora_moe_experts[i](cur_res) # 下采样回原尺寸 if upsample_ratio ! 1: cur_res F.interpolate(cur_res, size(int(H), int(W)), modebicubic) expert_outputs.append(cur_res) # 7. 合并专家输出 temp_lora_res dispatcher.combine(expert_outputs, multiply_by_gatesself.multiply_by_gates) # 8. 残差连接将卷积处理后的特征加回原始低秩特征 lora_res lora_res temp_lora_res # 9. 重塑回序列格式并升维 lora_res lora_res.permute(0, 2, 3, 1).contiguous() if dim 3: lora_res lora_res.reshape(B, L, C) # 10. 通过lora_B投影缩放后加到主输出 result (lora_res self.lora_B.T) * self.scaling return result, moe_loss return result这个过程就像一条精密的流水线主路通行输入x先走一遍原始的、被冻结的线性层 (self.weight)得到基础输出result。旁路降维同一份输入x经过Dropout用于防止过拟合后通过lora_A矩阵投影到低维空间r得到lora_res。空间还原将lora_res从(B, L, C)重塑为(B, C, H, W)恢复了其二维空间结构为卷积操作做好准备。智能路由门控网络MoEGate观察当前的特征图lora_res计算出每个专家的“得分”gates并选出得分最高的专家。同时它还会返回一个moe_loss负载均衡损失用于训练时平衡专家使用率。任务分发SparseDispatcher是一个工具类它根据gates将当前批次的输入特征高效地分发给被选中的专家。没被选中的专家这轮就“休息”了这大大节省了计算量。专家工作每个被选中的专家拿到分给自己的那部分输入。根据自己预设的upsample_ratio它可能会先对输入进行上采样然后进行3x3卷积和非线性激活最后再下采样回原始空间尺寸。这个过程让不同专家专注于不同尺度的特征模式。结果汇总SparseDispatcher再将所有专家处理完的结果收集起来按照门控权重加权合并得到temp_lora_res。特征增强将卷积专家处理后的特征temp_lora_res与原始的lora_res相加。这是一个残差连接确保了信息流的通畅防止梯度消失。格式还原与升维将增强后的空间特征重新排列回序列格式(B, L, C)然后通过lora_B矩阵投影回原始的高维空间。最终融合将投影后的结果乘以缩放因子scaling然后加到第一步得到的主路输出result上得到最终的输出。同时返回门控网络的损失moe_loss用于总损失计算。3.3 门控网络与稀疏分发器门控网络MoEGate和分发器SparseDispatcher是MoE机制的核心。MoEGate通过一个简单的“全局平均池化 线性层”结构来生成门控值并加入了可选的噪声以促进探索。SparseDispatcher则负责高效地实现“选通-分发-合并”这一套流程。它的实现利用了PyTorch的张量索引和分割操作避免了为每个专家复制完整批次数据的开销在专家数量较多时优势明显。4. 实战将ConvLoRA应用到SAM微调中理论懂了代码也看了接下来我们聊聊怎么真正用ConvLoRA来微调SAM。这里我分享一些实际操作中的经验和关键步骤。4.1 环境搭建与模型准备首先你需要一个能运行PyTorch和SAM的环境。建议使用Python 3.8以上版本并安装好对应版本的PyTorch带CUDA支持。然后安装SAM的官方库或其他维护良好的第三方实现。# 示例安装PyTorch (请根据你的CUDA版本选择) pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 # 安装Segment Anything pip install githttps://github.com/facebookresearch/segment-anything.git接下来下载SAM的预训练权重如sam_vit_bsam_vit_lsam_vit_h。ConvLoRA的代码通常需要集成到SAM的模型定义中。你需要找到SAM图像编码器ViT中所有nn.Linear层的位置例如Q、K、V投影MLP中的两个线性层等。然后将这些层替换成我们自定义的ConvLoRALinear层。这个过程需要对模型结构有一定的了解。一个常见的做法是写一个辅助函数递归地遍历模型的所有子模块将符合条件的nn.Linear层进行替换。替换时要特别注意保持输入输出维度的一致并正确设置r秩、lora_alpha、lora_dropout和conv_lora_expert_num专家数量等超参数。4.2 训练流程与超参数设置替换好模型后就可以开始训练了。训练流程和普通的微调类似但有几点需要特别注意参数冻结确保除了ConvLoRALinear层中新增的参数lora_A,lora_B, 卷积专家权重门控网络权重外SAM模型的所有原始参数都被冻结requires_gradFalse。你可以通过检查模型总参数量和可训练参数量来验证。损失函数你的下游任务损失如用于语义分割的交叉熵损失是主损失。别忘了把ConvLoRALinear.forward()返回的moe_loss也加进去。这个损失通常乘以一个很小的系数如1e-2以防止它主导训练过程同时又能有效平衡专家负载。优化器使用AdamW或Adam优化器学习率可以设置得比全参数微调大一些例如1e-3到5e-4。因为可训练参数很少模型不容易过拟合可以使用相对激进一点的学习策略。超参数选择秩r这是最重要的超参数之一。它控制了低秩空间的维度也间接决定了卷积专家输入输出的通道数。对于SAM-B/L/H这样的大模型r在4到16之间通常效果就不错。可以从8开始尝试。专家数量conv_lora_expert_num论文中常用4个专家。这提供了一个不错的多尺度覆盖范围上采样比例1,2,3,4。如果你的任务中物体尺度变化不大可以减少专家数以节省计算。LoRA缩放因子lora_alpha通常设置为r的值这样缩放因子scaling lora_alpha / r 1简化调参。Dropout率lora_dropout用于防止小参数量下的过拟合可以设置为0.1或0.2。4.3 效果对比与调优心得在我自己的实验里对比普通LoRA和ConvLoRA微调SAM在医学图像细胞分割和遥感图像建筑物提取任务上ConvLoRA在边界清晰度和小目标召回率上都有明显优势。尤其是在数据量有限的情况下ConvLoRA引入的卷积先验起到了很强的正则化作用模型收敛更快也更稳定。调优时我踩过的一个坑是专家负载不均衡。初期训练时可能某个专家比如处理原尺度的专家会被过度使用而其他专家学不到东西。这时就需要依赖moe_loss。如果发现这个损失值一直很高可以尝试增大它的系数或者检查门控网络的初始化。另外卷积专家的初始化也很重要使用较小的随机初始化如Kaiming初始化有助于训练稳定。最后别忘了评估时要把ConvLoRALinear层的merge_weights设置为True或者手动将LoRA的权重合并到原始权重中这样可以获得和原始SAM一样的推理速度没有任何额外开销。ConvLoRA真正做到了“训练时增强推理时无损”。

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

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

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…