ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

图文多模态情感识别:大模型对齐与特征融合实战指南

图文多模态情感识别:大模型对齐与特征融合实战指南 简介本资源是一份面向人工智能研究者与高校硕博生的图文多模态情感识别技术综述文档聚焦大模型增强与跨模态特征融合两大核心方向系统解决多源异构数据文本图像下情感判别准确率低、模态对齐难、融合策略单一等实际问题。文档为单文件Word格式.docx共1个87KB文件内容结构完整涵盖研究背景与意义、国内外现状对比、大模型BERT/GPT类在情感识别中的适配机制与优势分析、CNN/RNN驱动的早期/晚期融合策略、算法设计全流程数据预处理→特征提取→分类器优化→评估、典型实验环境搭建及结果可视化分析并专章探讨当前数据集规模不足、时序偏差、融合鲁棒性等挑战与未来演进路径。目前已有100人学习下载适合开展课程设计、科研立项或论文写作前的技术梳理与方法论参考。1. 图文多模态情感识别不是“文本图像拼接”大模型增强与特征融合的真实价值在哪儿你有没有试过把一张愤怒表情包和一句“今天好开心”硬凑进同一个模型——结果分类器一脸懵输出“中性”这不是玄学是图文多模态情感识别里最典型的翻车现场。这份《图文多模态情感识别研究大模型增强与特征融合方法.docx》不是泛泛而谈的综述PPT而是一份从实验室黑匣子拆出来的实战笔记它明确告诉你真正起效的不是“用BERT提文本特征、用ResNet提图像特征、再concat一下”而是大模型如何重构跨模态语义对齐以及特征融合到底该在哪个粒度、哪个位置、用什么约束去发生。文档里反复出现的IEMOCAP、FCA、EMO-5000等数据集不是摆设——它们对应着真实业务场景社交媒体舆情监控要扛住图文错位配图是暴雨文案是“阳光真好”电影评论分析得区分“截图里演员笑但台词在哭”新闻传播评估必须处理标题党耸动标题平和配图。它不教你怎么调参而是直击核心为什么85%准确率的模型在真实UGC数据上掉到62%答案藏在第3章“跨模态特征融合策略探讨”和第4章“算法设计”里——那里有可复现的注意力权重可视化代码、有ViT-BERT对齐失败时的梯度爆炸日志片段、有特征拼接后维度爆炸导致OOM的实测内存曲线。适合谁正在做智能客服情绪反馈、短视频平台内容安全审核、或医疗问诊图文报告情感辅助判读的一线算法工程师也适合被导师催着交“多模态创新点”的研二同学——因为文档里所有公式比如$F \alpha I \beta T$都附带了PyTorch可运行的等价实现且标注了$\alpha,\beta$在实际训练中为何不能简单设为0.5/0.5。这不是理论论文是踩过坑后留下的路标。2. 大模型不是越大越好图文情感识别中模型选型与增强策略的硬核逻辑2.1 为什么ViTBERT组合在图文情感任务上比CLIP更稳文档第2章反复强调“大模型增强”但没说清楚一个关键事实CLIP这类对比学习大模型在图文情感识别上常因目标函数错位而翻车。CLIP预训练目标是图文匹配image-text alignment而情感识别需要的是细粒度语义差异建模如“微笑”vs“皮笑肉不笑”。文档第2.2节提到的“Bert微调后在EMO-5000上F1达96%”其背后是明确的选型逻辑文本侧RoBERTa-base而非GPT——因情感分类是理解型任务非生成型双向注意力更适配图像侧ViT-Base/16非ResNet-101——ViT的patch embedding天然适配图文token对齐而ResNet的全局池化会丢失局部情感线索如眼神、嘴角弧度对齐方式文档第4.1节明确弃用CLIP的contrastive loss改用跨模态MLMMasked Language Modeling 图像区域掩码重建即对文本随机mask 15% token同时对图像patch随机mask 20%联合优化重建loss。这个策略在文档附录实验表中体现为ViTRoBERTa在FCA数据集上F10.87而CLIP-ViT在相同设置下仅0.79。原因在于CLIP的对比loss无法监督细粒度情感token如“哽咽”“攥拳”与图像区域的精确映射。# 文档第4.1节配套代码跨模态MLM训练核心逻辑PyTorch def forward(self, text_input_ids, image_patches): # 文本侧RoBERTa编码 MLM head text_emb self.text_encoder(text_input_ids) # [B, L, D] mlm_logits self.mlm_head(text_emb) # [B, L, VocabSize] # 图像侧ViT编码 patch重建head img_emb self.vit_encoder(image_patches) # [B, N, D] recon_logits self.patch_recon_head(img_emb) # [B, N, PatchDim] # 关键联合loss强制文本情感词与图像情感区域对齐 # 文档第2.3节案例中哽咽文本token需与图像中喉部区域patch重建误差最小 total_loss self.mlm_loss(mlm_logits, masked_text_labels) \ self.recon_loss(recon_logits, masked_image_patches) \ self.align_loss(text_emb, img_emb) # 对齐loss见2.2节说明 return total_loss提示align_loss并非简单cosine相似度。文档第2.2节脚注指出它采用动态温度系数的InfoNCE变体对每个文本token只计算与其语义最近的3个图像patch的对比loss避免背景噪声干扰。温度系数τ在训练中从0.1线性衰减至0.01这是文档第5.2节实验验证出的关键超参。2.2 大模型“增强”的本质不是堆参数而是重构特征空间文档第2章标题写“大模型增强”但正文第2.1节一针见血“增强”指利用大模型的中间层表征替代传统手工特征构建跨模态统一语义空间。这直接否定了“用BERT最后层输出ViT最后层输出直接拼接”的粗暴做法。文档第3.2节给出证据在IEMOCAP数据集上直接拼接ViT最后一层[CLS] token与BERT最后一层[CLS] tokenF1仅为0.72而采用文档提出的分层对齐策略Layer-wise AlignmentF1跃升至0.85。该策略要求ViT的第4、8、12层输出分别与BERT的第4、8、12层输出进行cross-attention对齐对齐loss不是L2距离而是KL散度约束的分布匹配强制ViT某层patch embedding的softmax分布与BERT对应层token embedding的softmax分布一致。# 文档第3.2节配套代码分层对齐的KL散度loss def layer_align_loss(vit_layer_out, bert_layer_out, temperature0.05): vit_layer_out: [B, N, D] - patch embeddings bert_layer_out: [B, L, D] - token embeddings 文档第3.2节说明N196 (14x14 patches), L512 (max seq len) # 步骤1将patch/token embedding投影到同一空间文档第4.2节提及的Linear投影层 proj_vit self.proj_vit(vit_layer_out) # [B, N, D_proj] proj_bert self.proj_bert(bert_layer_out) # [B, L, D_proj] # 步骤2计算相似度矩阵文档第3.2节公式FAttention(I,T)的实现基础 sim_matrix torch.einsum(bnd,bld-bnl, proj_vit, proj_bert) / temperature # 步骤3KL散度约束——强制patch分布≈token分布文档第3.2节脚注2 # 对每个patch计算其与所有token的softmax概率再与token侧softmax分布求KL patch_dist F.softmax(sim_matrix, dim-1) # [B, N, L] token_dist F.softmax(sim_matrix.transpose(1,2), dim-1) # [B, L, N] # KL(p||q) sum(p * log(p/q)) kl_loss torch.mean(torch.sum(patch_dist * torch.log(patch_dist / (token_dist 1e-8)), dim-1)) return kl_loss参数说明temperature0.05是文档第5.2节实验确定的最优值。温度过高如0.1导致分布过于平滑对齐失效温度过低如0.01使梯度消失。proj_vit/proj_bert是两个独立的Linear层文档第4.2节称其为“语义桥接器”维度D_proj768与BERT/ViT隐藏层一致。2.3 案例驱动的增强验证三个真实场景的失败归因与修复路径文档第2.3节的三个案例社交媒体、新闻舆情、电影评论不是罗列而是故障树分析模板。它教会你当模型在某个场景失效时如何快速定位是大模型问题还是融合策略问题。场景典型失败现象文档归因第2.3节附录实验修复方案文档第4.2节代码社交媒体配图是暴雨文案“阳光真好”被误判为“积极”ViT对图像全局语义过强忽略局部情感线索如雨滴纹理BERT对反讽识别弱引入局部patch注意力门控对ViT输出的patch embedding用BERT的[CLS] token做query计算每个patch的重要性权重仅保留Top-20%高权重patch参与融合文档代码local_patch_gate.py新闻舆情标题“突发重大进展”配图是会议现场模型判“中性”CLIP类模型对“突发”“重大”等抽象词缺乏情感极性建模替换文本编码器为FinBERT金融领域微调版BERT并在输入前插入领域提示词“[NEWS]”文档第4.1节表3电影评论截图是主角流泪文案“演技炸裂”被误判“悲伤”跨模态对齐未考虑时间维度截图帧与文案描述的时间错位在ViT输入前对图像patch添加时间位置编码Time-Positional Encoding维度与BERT位置编码一致文档第4.2节公式$F \alpha I_{t} \beta T$中的$I_t$这些修复方案全部在文档附录提供了可运行代码片段且明确标注了在哪个数据集上验证有效如“局部patch门控在微博情感数据集上提升F1 3.2%”。3. 特征融合不是“加权平均”四种融合策略的适用边界与避坑指南3.1 早期融合、晚期融合、混合融合、注意力融合何时用哪种文档第3章的核心价值在于它用量化实验数据划清了四种融合策略的适用边界而非空谈概念。第3.1节表格明确指出早期融合输入层拼接仅适用于模态间高度同步的数据如视频帧对应字幕在图文场景中因图文异步性F1普遍低于0.70晚期融合决策层集成鲁棒性最强但计算开销大在文档第5.1节实验中单卡V100推理延迟达1200ms不满足实时舆情监控需求混合融合文档推荐的默认方案但必须满足一个前提——文本与图像特征维度必须严格对齐文档第3.2节强调“ViT输出768维BERT必须用768维base模型不可混用large”注意力融合效果最好F1最高0.88但对训练数据量敏感文档第5.2节显示当训练样本5000时注意力权重易坍缩为全0或全1退化为简单加权。因此文档第4.2节提出自适应融合策略先用混合融合训练基线模型再用其预测结果作为监督信号蒸馏一个轻量级注意力融合模型。该策略在EMO-5000数据集上以仅增加15%参数量的代价将F1从0.85提升至0.87。# 文档第4.2节自适应融合的蒸馏核心代码 class AdaptiveFusion(nn.Module): def __init__(self, hidden_dim768): super().__init__() # 基线混合融合模块文档第3.1节定义 self.hybrid_fuser HybridFuser(hidden_dim) # 输出 [B, hidden_dim] # 轻量级注意力融合模块蒸馏目标 self.attn_fuser LightweightAttnFuser(hidden_dim) # 输出 [B, hidden_dim] # 蒸馏loss让attn_fuser输出逼近hybrid_fuser输出 self.distill_loss nn.MSELoss() def forward(self, text_feat, img_feat, is_trainingTrue): hybrid_out self.hybrid_fuser(text_feat, img_feat) # [B, D] if is_training: attn_out self.attn_fuser(text_feat, img_feat) # [B, D] # 文档第4.2节强调蒸馏loss权重λ0.3经网格搜索确定 distill_loss self.distill_loss(attn_out, hybrid_out.detach()) return attn_out, distill_loss else: return self.attn_fuser(text_feat, img_feat) # LightweightAttnFuser结构文档第3.3节简化版 class LightweightAttnFuser(nn.Module): def __init__(self, hidden_dim): super().__init__() self.query_proj nn.Linear(hidden_dim, hidden_dim//4) # 降维减少计算 self.key_proj nn.Linear(hidden_dim, hidden_dim//4) self.value_proj nn.Linear(hidden_dim, hidden_dim) def forward(self, text_feat, img_feat): # text_feat: [B, D], img_feat: [B, D] Q self.query_proj(text_feat) # [B, D//4] K self.key_proj(img_feat) # [B, D//4] V self.value_proj(img_feat) # [B, D] # 简化attentionQK^T后softmax再乘V attn_weights F.softmax(torch.einsum(bd,bd-b, Q, K), dim0) # [B] fused_feat torch.einsum(b,bd-bd, attn_weights, V) # [B, D] return fused_feat逻辑说明此代码实现了文档第4.2节的“蒸馏轻量注意力”思想。LightweightAttnFuser将计算复杂度从标准attention的O(N²)降至O(N)因text_feat和img_feat均为单向量非序列故torch.einsum(bd,bd-b, Q, K)直接计算batch内每个样本的Q-K相似度。attn_weights是标量权重用于加权图像特征V最终输出融合向量。文档第4.2节强调该设计在保持效果的同时将单次推理耗时从850ms降至210msV100实测。3.2 跨模态特征融合的致命陷阱维度灾难与梯度冲突文档第3.3节“跨模态特征融合策略探讨”直面一个被多数教程回避的问题当ViT输出196个patch embedding[B,196,768]BERT输出512个token embedding[B,512,768]时如何融合直接拼接得到[B,708,768]后续全连接层参数量爆炸。文档给出两种工业级解法Patch-Token Matching文档第3.3节图5将ViT的196个patch视为“图像token”BERT的512个token视为“文本token”构建一个196×512的相似度矩阵用匈牙利算法Hungarian Algorithm求解最优匹配每个图像patch只与1个最相关文本token对齐反之亦然最终融合向量 所有匹配对的加权和权重相似度分数。Region-Word Grounding文档第3.3节公式12先用YOLOv5检测图像中的人脸、手势、物体等区域用spaCy提取文本中的名词、动词、形容词建立区域-词的语义相似度用Sentence-BERT计算仅融合高相似度0.6的区域-词对。这两种方法在文档第5.2节实验中将融合模块显存占用从18GB降至4.2GBV100且F1无损。3.3 避坑特征融合的四个血泪经验现象1融合后模型在训练集上F10.95测试集骤降至0.62原因文档第3.2节指出这是特征尺度未归一化导致。ViT的patch embedding L2范数均值为3.2BERT的token embedding均值为1.8直接相加使图像特征主导融合结果。解决在融合前对两类特征做L2归一化F α * F_i / ||F_i||_2 β * F_t / ||F_t||_2。文档第4.2节代码中αβ0.5且归一化操作在forward函数开头强制执行。现象2注意力权重图显示所有patch权重趋近于0原因文档第3.3节附录B证实这是初始化偏差。当query_proj和key_proj的Linear层使用默认Xavier初始化时初始QK^T输出集中在[-0.1,0.1]softmax后权重均匀分布。解决将query_proj和key_proj的bias设为0.5文档第4.2节脚注5使初始QK^T输出集中在[0.4,0.6]softmax后自然产生稀疏权重。现象3混合融合中文本特征通道被图像特征完全淹没原因文档第3.1节图3显示ViT的梯度幅值mean0.023是BERTmean0.008的2.8倍导致反向传播时图像分支主导更新。解决在损失函数中加入梯度均衡项total_loss task_loss λ * |grad_norm_img - grad_norm_text|其中λ0.01文档第5.2节网格搜索结果。现象4使用PCA降维后融合效果反而下降原因文档第3.3节强调PCA破坏了跨模态语义对齐结构。ViT的patch embedding在PCA主成分空间中与BERT token embedding的余弦相似度从0.71降至0.33。解决改用跨模态CCACanonical Correlation Analysis在文档第4.1节提供cca_align.py脚本先用ViT和BERT提取特征再用CCA找到两组特征的最大相关子空间投影后融合。实测CCA使F1提升1.8%。4. 图文多模态情感识别算法落地从数据预处理到性能评估的全流程复现4.1 数据预处理为什么“去停用词”在图文任务中是危险操作文档第4.1节“数据预处理与特征提取”颠覆常识在图文情感识别中停用词如“的”“了”“啊”常携带关键情感线索。例如“笑了” vs “笑”“真的” vs “真”。文档第4.1节表2显示在微博数据集上去除停用词使F1下降4.3%。因此文档推荐的预处理流程是文本侧仅去除HTML标签、URL、重复标点如“”→“”保留所有中文字符和情感标点图像侧不进行全局直方图均衡化会失真情感色彩改用局部对比度受限自适应直方图均衡CLAHE参数clip_limit2.0文档第4.1节脚注3对齐处理对每对图文用OCR提取图像文字若OCR文本与给定文本编辑距离0.3则标记为“图文错位样本”在训练时赋予更高loss权重文档第4.2节misalignment_weight.py。# 文档第4.1节图文错位样本加权loss def misalignment_weighted_loss(pred, target, ocr_text, given_text, weight_factor2.0): ocr_text: OCR识别出的图像文字str given_text: 数据集提供的原始文本str # 计算编辑距离相似度Levenshtein ratio from difflib import SequenceMatcher similarity SequenceMatcher(None, ocr_text, given_text).ratio() # 若相似度低加大loss权重 base_loss F.cross_entropy(pred, target, reductionnone) if similarity 0.3: weighted_loss base_loss * weight_factor else: weighted_loss base_loss return weighted_loss.mean() # 使用示例文档第4.2节train_loop.py for batch in dataloader: pred model(batch[text], batch[image]) loss misalignment_weighted_loss( pred, batch[label], batch[ocr_text], batch[given_text] ) loss.backward()参数说明weight_factor2.0是文档第5.2节实验确定的平衡点。设为3.0会导致模型过度关注错位样本忽略常规样本设为1.5则加权效果不足。SequenceMatcher.ratio()返回0~1的相似度0.3是文档在FCA数据集上通过ROC曲线确定的最佳阈值。4.2 情感分类器设计为什么全连接层不是终点而是起点文档第4.2节“情感分类器设计与优化”指出在图文融合后接一个3层全连接网络FC是最低效的做法。它推荐一种“双路径分类器”主路径融合特征 → FC → Softmax标准分类辅助路径融合特征 → LSTM捕捉情感演化趋势 → FC → Softmax文档第4.2节称其为“时序情感校准”最终输出 主路径logits × 0.7 辅助路径logits × 0.3。该设计源于文档第2.3节电影评论案例观众对电影的情感常随剧情推进变化如开头期待→中段失望→结尾感动单一FC无法建模此过程。LSTM虽只处理1D融合向量但文档第4.2节证明将其视为“情感状态演化模拟器”能提升长评论的分类准确率。# 文档第4.2节双路径分类器代码 class DualPathClassifier(nn.Module): def __init__(self, input_dim768, num_classes5): super().__init__() # 主路径标准FC self.main_fc nn.Sequential( nn.Linear(input_dim, 512), nn.ReLU(), nn.Dropout(0.3), nn.Linear(512, num_classes) ) # 辅助路径LSTM模拟情感演化 self.aux_lstm nn.LSTM(input_sizeinput_dim, hidden_size256, num_layers1, batch_firstTrue) self.aux_fc nn.Linear(256, num_classes) def forward(self, fused_feat): # fused_feat: [B, D] —— 文档第4.2节强调这是单向量非序列 # 为输入LSTM需扩展为[B, 1, D]1步长序列 lstm_input fused_feat.unsqueeze(1) # [B, 1, D] lstm_out, _ self.aux_lstm(lstm_input) # [B, 1, 256] aux_logits self.aux_fc(lstm_out.squeeze(1)) # [B, C] main_logits self.main_fc(fused_feat) # [B, C] # 加权融合文档第4.2节固定权重 final_logits main_logits * 0.7 aux_logits * 0.3 return final_logits # 使用示例 classifier DualPathClassifier() logits classifier(fused_feature) # fused_feature来自3.1节的AdaptiveFusion逻辑说明此代码实现了文档第4.2节的“双路径”思想。关键点在于fused_feat.unsqueeze(1)——将单向量融合特征视为长度为1的序列输入LSTM。文档第4.2节解释LSTM在此并非处理时序而是利用其门控机制遗忘门、输入门对融合特征进行二次非线性变换模拟“情感状态在大脑中的持续加工过程”。实验证明该设计在IMDB长评论子集上将F1从0.92提升至0.94。4.3 模型训练与性能评估别只看Accuracy这四个指标才是命门文档第4.3节“模型训练与性能评估”强调在情感识别中Accuracy具有欺骗性。例如一个永远预测“中性”的模型在三分类积极/中性/消极数据集上Accuracy可达65%但毫无价值。文档强制要求报告以下四个指标指标计算公式文档第4.3节强调的解读实测影响文档第5.2节Weighted F1$\frac{1}{C}\sum_{i1}^{C} \frac{2 \cdot Precision_i \cdot Recall_i}{Precision_i Recall_i} \times Support_i$权重按各类样本数加权反映整体鲁棒性比Micro-F1更能暴露长尾类别如“恐惧”性能Emotion-Specific Recall$Recall_i \frac{TP_i}{TP_i FN_i}$单独报告每个情感类别的召回率尤其关注低频类在FCA数据集上“惊讶”类Recall从0.58→0.71用文档第3.3节CCAConfusion Matrix Diagonal Sum$\sum_{i} Confusion[i,i]$对角线元素和直观显示模型“不乱判”的能力比Accuracy更敏感文档第5.2节显示其与人工评估相关性达0.93Inference Latency (p95)第95百分位推理耗时在V100上实测单位ms文档第5.1节要求≤300ms否则不满足实时舆情需求文档第4.3节提供完整评估脚本eval_metrics.py自动计算上述四指标并生成混淆矩阵热力图文档第5.2节图7。5. 实验复现与结果分析避开环境、数据、评估的三大深坑5.1 实验环境搭建为什么PyTorch 1.12 CUDA 11.3是黄金组合文档第5.1节“实验环境搭建与数据集准备”明确列出硬件与软件栈并解释选择理由GPUNVIDIA V100 32GB非A100——因文档所有实验在V100上完成A100的Tensor Core可能引入精度漂移PyTorch1.12.1非最新版——因文档第5.1节附录A指出PyTorch 1.13的torch.compile在ViT-BERT联合训练中会使梯度计算错误率上升0.7%CUDA11.3非11.8——因文档第5.1节表4显示CUDA 11.3的cuBLAS库对ViT的patch embedding矩阵乘法优化最佳较11.8提速12%关键依赖transformers4.26.1,timm0.6.13,scikit-learn1.2.2文档第5.1节脚注1。注意文档第5.1节强调必须禁用torch.backends.cudnn.benchmark True因其在小批量batch_size8训练中会因反复切换卷积算法导致显存碎片化最终OOM。应设为False并固定cudnn.deterministic True以保证可复现性。5.2 实验过程与结果展示F10.87背后的真实含义文档第5.2节“实验过程与结果展示”不只列数字而是揭示数字背后的工程真相数据集划分所有实验采用分层抽样Stratified Split确保训练/验证/测试集的各类情感比例一致文档第5.2节图6训练轮数固定为30 epoch但早停Early Stopping基于验证集Weighted F1patience5文档第5.2节表5学习率策略Warmup 500 steps然后余弦退火至0文档第5.2节图8关键结果在IEMOCAP上文档方法F10.85但置信区间为[0.83,0.87]95% CI基于5次随机种子实验表明结果稳健。文档第5.2节图9的消融实验Ablation Study最具价值移除跨模态MLM2.1节→ F1 ↓3.1%移除分层对齐2.2节→ F1 ↓2.4%移除双路径分类器4.2节→ F1 ↓1.2%移除图文错位加权4.1节→ F1 ↓0.8%。这证明文档所有技术点均有实证贡献非堆砌。5.3 结果分析与讨论为什么你的复现结果比文档低3%文档第5.3节“结果分析与讨论”坦诚列出复现差距的三大主因并给出解决方案数据预处理差异文档第5.3节指出90%的复现失败源于OCR质量。若用Tesseract OCR其对模糊截图识别率仅68%而文档使用PaddleOCR v2.6在文档第5.1节依赖列表中识别率达92%。解决方案pip install paddlepaddle-gpu2.4.2 paddleocr2.6.0.1。随机种子未固定文档第5.3节强调必须在训练前设置四重种子# 文档第5.3节指定代码 import random import numpy as np import torch seed 42 random.seed(seed) np.random.seed(seed) torch.manual_seed(seed) torch.cuda.manual_seed_all(seed) # 关键评估指标计算方式不同文档第5.3节发现部分复现者用sklearn.metrics.f1_score(y_true, y_pred, averagemacro)而文档用weighted。在FCA数据集类别不均衡上macro-F1比weighted-F1低2.1%。文档提供eval_metrics.py确保计算一致。6. 进阶技巧用特征可视化与错误分析反向驱动模型迭代6.1 特征可视化如何用Grad-CAM看懂模型在“看”什么文档第6章不讲理论只给可立即上手的调试技巧。第6.1节“特征可视化”提供gradcam_visualize.py脚本用于生成ViT的Grad-CAM热力图。关键不是生成图而是如何解读正确样本热力图应聚焦于情感线索区域如“愤怒”配图热力集中在皱眉、紧闭嘴唇错误样本热力图若模型将“微笑”判为“悲伤”热力图却集中在背景人物说明特征提取器被背景噪声误导文档第6.1节图12。# 文档第6.1节ViT Grad-CAM可视化核心代码 from pytorch_grad_cam import GradCAM from pytorch_grad_cam.utils.image import show_cam_on_image # 加载ViT模型文档第5.1节指定timm0.6.13 model timm.create_model(vit_base_patch16_224, pretrainedTrue) target_layers [model.blocks[-1].norm1] # 取最后一层block的LN1 cam GradCAM(modelmodel, target_layerstarget_layers, use_cudaTrue) grayscale_cam cam(input_tensorimg_tensor, targetsNone) # img_tensor: [1,3,224,224] # 可视化文档第6.1节强调必须用 p a hrefhttps://download.csdn.net/download/zhuzhi/91756220 stylecolor:#ec7500;font-size:14px; 本文还有配套的精品资源点击获取 /a img altmenu-r.4af5f7ec.gif srchttps://csdnimg.cn/release/wenkucmsfe/public/img/menu-r.4af5f7ec.gif stylewidth:16px;margin-left:4px;vertical-align:text-bottom;cursor:text; /p
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表