Visual Interpretability for Deep Learning: a Survey

Visual Interpretability for Deep Learning: a Survey----《深度学习的视觉可解释性:综述》

摘要

  本文回顾了最近在理解神经网络表示以及学习具有可解释性/解耦的中间层表示的神经网络方面的研究。尽管深度神经网络在各种任务中表现出了优越的性能,但可解释性始终是深度神经网络的致命弱点。目前,深度神经网络获得了高辨别力,但代价是其黑箱表示的低可解释性。我们相信高模型可解释性可以帮助人们打破深度学习的几个瓶颈,例如,通过极少的注释学习、在语义层面上通过人机交流学习、以及在语义层面上调试网络表示。我们专注于卷积神经网络(CNN),并重新审视CNN表示的可视化,我们专注于卷积神经网络(CNN),并重新审视了CNN表示的可视化、诊断预训练CNN表示的方法、解耦预训练CNN表示的方法、具有解耦表示的CNN的学习,以及基于模型可解释性的端到端学习。最后,我们讨论了可解释人工智能的未来趋势。

引言

  卷积神经网络(CNN)在许多视觉任务中取得了优异的性能,如对象分类和检测。然而,端到端学习策略使CNN表示成为一个黑盒子。除了最终的网络输出,人们很难理解隐藏在网络内部的CNN预测的逻辑。近年来,越来越多的研究人员认识到模型的高可解释性在理论和实践中都具有重要价值,并开发了具有可解释性知识表示的模型。
  在这篇论文中,我们对当前理解神经网络表示和学习具有可解释/解耦表示的神经网络的研究进行了调查。我们可以将综述的范围大致定义为以下六个研究方向。

  • 中间网络层CNN表示的可视化。 这些方法主要合成了一个图像,该图像最大化了预训练CNN中给定单元的得分,或者将卷积层的特征图反转回输入图像。详细讨论请参见第2节。
  • CNN表征的诊断。 相关研究可能会诊断出CNN针对不同对象类别的特征空间,或者发现卷积层中潜在的表示缺陷。详情请参阅第3节。
  • CNN滤波器中“混合模式”的解耦。 这些研究主要是将卷积层中的复杂表示分解,并将网络表示转化为可解释的图。详情请参阅第4节。
  • 建立可解释的模型。 我们在第 5 节中讨论了可解释的 CNN [Zhang et al, 2017c]、胶囊网络 [Sabour et al, 2017]、可解释的 R-CNN [Wu et al, 2017] 和 InfoGAN [Chen et al, 2016]。
  • 通过人机交互进行语义级中端学习。 CNN 表示的清晰语义解开可能会进一步实现弱监督神经网络的“中端”学习。第 7 节介绍了通过人机交互学习新模型的方法 [Zhang et al, 2017b] 和在非常有限的人类监督下主动问答 [Zhang et al, 2017a]。

  其中,CNN表示的可视化是探索网络表示最直接的方式。网络可视化还为许多诊断 CNN 表征的方法提供了技术基础。预训练 CNN 特征表示的解耦和可解释网络表示的学习对最先进的算法提出了更大的挑战。最后,可解释或解耦的网络表示也是弱监督中端学习的起点。
  模型可解释性的值: 高卷积层中清晰的语义可以帮助人们信任网络的预测。正如 [Zhang et al, 2018b] 中所讨论的,考虑到数据集和表示偏差,测试图像的高精度仍然不能确保 CNN 能够编码正确的表示。例如,CNN 可能使用不可靠的上下文(眼睛特征)来识别面部图像的“口红”属性。因此,人们通常无法完全信任网络,除非 CNN 能够在语义上或视觉上解释其逻辑,例如使用什么模式进行预测。
  此外,基于可解释或解开的网络表示的神经网络的中端学习或调试也可以显着减少对人工注释的需求。此外,基于网络的语义表示,未来有可能在语义层面将多个CNN合并成一个通用网络(即为不同任务编码通用知识表示的网络)。
  在以下部分中,我们回顾上述研究方向并讨论技术发展的潜在未来。

CNN 表示的可视化

  CNN 中滤波器的可视化是探索隐藏在神经单元内部的视觉模式的最直接方法。已经开发了不同类型的网络可视化方法。
  首先,基于梯度的方法是网络可视化的主流。这些方法主要是计算给定CNN单元相对于输入图像的分数的梯度。他们使用梯度来估计最大化单位分数的图像外观。[Olah 等人,2017] 提供了一个现有技术的工具箱,用于可视化预训练 CNN 的不同卷积层中编码的模式。
  其次,上卷积网络是另一种可视化 CNN 表示的典型技术。上卷积网络将 CNN 特征图反转为图像。我们可以将上卷积网络视为间接说明特征图对应的图像外观的工具,尽管与基于梯度的方法相比,上卷积网络无法在数学上确保可视化结果准确反映 CNN 中的实际表示。类似地,[Nguyen et al, 2017]进一步向对抗性生成网络引入了一个额外的先验,它控制合成图像的语义。我们可以使用 CNN 特征图作为可视化的先验。
  此外,[Zhou et al,2015]提出了一种精确计算特征图中神经激活的图像分辨率感受野的方法。神经激活的实际感受野小于使用滤波器大小计算的理论感受野。感受野的准确估计有助于人们理解滤波器的表示。

CNN 表征的诊断

  有些方法超越了 CNN 的可视化,还可以诊断 CNN 表示,以获得对 CNN 中编码的特征的深入理解。我们将所有相关研究大致分为以下五个方向。
  第一个方向的研究从全局的角度分析CNN的特征。第二个研究方向提取直接为标签/属性提供网络输出的图像区域,以解释标签/属性的 CNN 表示。CNN 特征空间中的脆弱点估计也是诊断网络表示的一个流行方向。第四个研究方向是基于网络特征空间分析来细化网络表示。第五个研究方向是 CNN 潜在的、有偏差的表示。

将 CNN 表示分解为解释图和决策树

将 CNN 表示分解为解释图

  与前面章节中网络表示的可视化和诊断相比,将 CNN 特征分解为人类可解释的图形表示(即解释图)可以为网络表示提供更彻底的解释。[张等人,2018a; [Zhang et al, 2016] 提出了预训练 CNN 的卷积层中的解耦特征,并使用图形模型来表示隐藏在 CNN 内部的语义层次结构。
  如图 2 所示,CNN 高卷积层中的每个滤波器通常代表模式的混合。例如,过滤器可以由对象的头部和尾部两者激活。因此,为了提供预训练 CNN 中如何组织视觉知识的全局视图,[Zhang 等人,2018a;张等人,2016]旨在回答以下三个问题:
在这里插入图片描述

  1. CNN 的每个卷积滤波器可以记忆多少种视觉模式?
  2. 共同激活哪些模式来描述对象部分?
  3. 两个共同激活模式之间的空间关系是什么?

  如图3所示,解释图解释了CNN内部隐藏的知识语义。解释图解开了卷积层的每个过滤器特征图中的部分模式的混合,并使用每个图节点来表示一个部分。
在这里插入图片描述

  • 解释图有多层。每个图层对应于 CNN 的特定卷积层。
  • 卷积层中的每个过滤器可以代表不同对象部分的外观。该算法自动解开在单个过滤器中编码的部分模式的混合,并使用解释图中的节点来表示每个部分模式。
  • 解释图中的每个节点通过不同的图像一致地表示相同的对象部分。我们可以使用节点来定位输入图像相应的部分。在某种程度上,节点对形状变形和姿态变化具有鲁棒性。
  • 每条边都编码相邻层中两个节点之间的协同激活关系和空间关系。
  • 我们可以将解释图视为卷积层特征图的压缩。CNN 有多个卷积层。每个卷积层可能有数百个过滤器,每个过滤器可能会产生具有数百个神经单元的特征图。我们可以用解释图中的数万个节点来表示这些特征图中所有数千万个神经单元所包含的信息,即通过哪些部分模式激活特征图,以及部分模式在输入图像中的定位位置。
  • 就像字典一样,每个输入图像只能触发解释图中部分模式(节点)的一小部分。每个节点描述了一个具有高可移植性的公共部分模式,该模式由数百或数千个训练图像共享。

  图 4 列出了说明图中不同节点对应的排名最高的图像块。图 5 可视化了解释图第 L 层中前 50% 的节点推断出的对象部分的空间分布,推断得分最高。图 6 显示了由单个节点推断的对象部分。
在这里插入图片描述

将CNN表示分解为决策树

  [Zhang et al ., 2018c]进一步提出了一种决策树来编码全连通层中的决策模式。决策树不是为分类而设计的。相反,决策树用于定量解释每个 CNN 预测的逻辑。即给定输入图像,我们使用 CNN 进行预测。决策树告诉人们卷积层中的哪些过滤器用于预测以及它们对预测的贡献有多大。
如图7所示,该方法挖掘全连接层中存储的潜在决策模式。决策树以由粗到细的方式组织这些潜在的决策模式。此外,本研究使用 [Zhang et al, 2017c] 的方法来解开顶部卷积层中滤波器的表示,即使每个滤波器代表特定的对象部分。这样,人们就可以使用决策树在语义层面解释每个 CNN 预测的基本原理,即 CNN 使用哪些对象部分来进行预测。
在这里插入图片描述

学习具有可解释/解耦表示的神经网络

  前面几节中提到的几乎所有方法都侧重于对预训练网络的理解。在本节中,我们回顾了学习神经网络解耦表示的研究,其中中间层的表示不再是黑匣子,而是具有清晰的语义含义。与理解预训练网络相比,具有解耦表示的学习网络提出了更多挑战。到目前为止,在这个方向上发表的研究仅有少数。

可解释的卷积神经网络

  如图 8 所示,[Zhang et al, 2017c] 开发了一种修改普通 CNN 的方法,通过向卷积层中的每个滤波器添加损失来获得高卷积层中的解耦表示。损失用于将特征图正则化为特定对象部分的表示。
在这里插入图片描述
  请注意,人们不需要注释任何对象部分或纹理来监督可解释 CNN 的学习。相反,损失在端到端学习过程中自动为每个过滤器分配一个对象部分。如图9所示,该方法设计了一些模板。每个模板Tμi都是一个具有相同大小特征图的矩阵。Tμi描述了当目标部分主要触发特征图中的第i个单元时特征图激活的理想分布。
在这里插入图片描述
  给定将特征图拟合到模板的联合概率,滤波器的损失被公式化为特征图和模板之间的互信息。这种损失促进了类别间激活的低熵,即卷积层中的每个过滤器都被分配到特定的类别。如果输入图像属于目标类别,则损失期望滤波器的特征图与模板很好地匹配;否则,过滤器需要保持停用状态。此外,这种损失还导致神经激活空间分布的熵变低。 当输入图像属于目标类别时,特征图应该专门适合单个模板。换句话说,过滤器需要激活特征图上的单个位置。
  这项研究假设,如果过滤器重复激活各种特征图区域,那么该过滤器更有可能描述低级纹理(例如颜色和边缘),而不是高级部分。例如,左眼和右眼可以由不同的滤波器来表示,因为两只眼睛的上下文是对称的,但不相同。
  图 10 显示了可解释 CNN 的不同滤波器生成的特征图。每个过滤器通过各种图像一致地表示相同的对象部分。
在这里插入图片描述

可解释的 R-CNN

  [Wu et al, 2017] 提出了一种基于 R-CNN 的对象检测的定性可解释模型学习方法。其目标是在对象检测过程中自动展开对象部分的潜在配置。该方法的学习不使用任何部分注释进行监督。[Wu et al., 2017] 使用一个自顶向下的层次和组合语法,即一个 And-Or 图(AOG),来模拟对象部分的潜在配置。这个方法使用基于 AOG 的解析操作符来替代 R-CNN 中使用的 RoI-Pooling 操作符。基于 AOG 的解析利用了对象的可解释的组合结构,并保持了 R-CNN 的区分能力。这个想法与解开局部的、自底向上的和自顶向下的信息组件进行预测的概念相关[Wu et al, 2007; Yang et al, 2009; Wu and Zhu, 2011]。
  在检测过程中,边界框被解释为动态地从AOG派生的最佳解析树。在学习过程中,采用折叠-展开方法对AOG和R-CNN进行端到端训练。
  图11表示了对象检测的示例。所提出的方法检测对象边界框。该方法还确定对象的潜在解析树和部分配置作为检测中的定性提取原理。
在这里插入图片描述

胶囊网络

  [Sabour et al, 2017] 设计了新颖的神经单元,即胶囊,以替代传统的神经单元来构建胶囊网络。每个胶囊输出一个活动向量而不是标量。活动向量的长度表示胶囊的激活强度,活动向量的方向编码实例化参数。较低层中的活动胶囊向相邻较高层中的胶囊发送消息。该方法使用迭代协议路由机制为低层胶囊分配更高的权重,其输出更好地适合高层胶囊的实例化参数。
  实验表明,当人们使用 MNIST 数据集 [LeCun 等人,1998b] 训练胶囊网络时,胶囊会编码特定的语义概念。胶囊活动向量的不同维度控制不同的特征,包括1)尺度和厚度,2) 局部部分,3) 笔划粗细,3) 局部倾斜,以及 4) 宽度和平移。

信息最大化生成对抗网络

  信息最大化生成对抗网络[Chen et al, 2016],即InfoGAN,是生成对抗网络的扩展。信息最大化生成对抗网络[Chen et al, 2016],即InfoGAN,是生成对抗网络的扩展。InfoGAN 将生成器的输入变量分为两种类型,即不可压缩噪声 z 和潜在代码 c。本研究旨在学习潜在代码 c 以无监督的方式编码某些语义概念。
  InfoGAN 已使用 MNIST 数据集 [LeCun 等人,1998b]、CelebA 数据集 [Liu 等人,2015]、SVHN 数据集 [Netzer 等人,2011]、3D 人脸数据集 [Paysan 等人,2009] 进行训练,以及 3D 椅子数据集 [Aubry et al, 2014]。实验表明,潜在代码成功编码了 MNIST 数据集中的数字类型、旋转和数字宽度、SVHN 数据集中的光照条件和车牌上下文、方位角、是否存在眼镜、发型、以及 CelebA 数据集中的情感,以及 3D 面部和椅子数据集中的宽度和 3D 旋转。

网络可解释性的评估指标

  模型可解释性的评估指标对于可解释模型的开发至关重要。这是因为与传统的明确定义的视觉应用(例如对象检测和分割)不同,网络可解释性更难以定义和评估。网络可解释性的评价指标可以帮助人们定义网络可解释性的概念,指导学习可解释网络表示的发展。迄今为止,只有很少的研究讨论了网络可解释性的评估。提出一个有前景的评估指标对于最先进的算法来说仍然是一个巨大的挑战。在本节中,我们简单介绍了CNN滤波器可解释性的两个最新评估指标,即[Bau et al,2017]提出的滤波器可解释性和[Zhang et al,2018a]提出的位置不稳定性。

滤波器的可解释性

  [Bau et al, 2017] 为 CNN 过滤器定义了六种类型的语义,即对象、零件、场景、纹理、材质和颜色。过滤器可解释性的评估需要人们在像素级别的测试图像上注释这六种语义。评估指标衡量滤波器神经激活的图像分辨率感受野与图像上的像素级语义注释之间的适合度。

位置不稳定

  另一个评估指标是位置不稳定。该指标由 [Zhang et al, 2018a] 提出,用于评估 CNN 过滤器和对象部分表示之间的适应性。

中端学习的网络可解释性

  根据第 4 节和第 5 节中讨论的研究,人们可以解开预训练 CNN 的表示,或者学习具有可解释、解开表示的新网络。这种可解释/解耦的网络表示可以进一步实现语义级别的中端模型学习,而无需强监督。我们简要回顾了两项典型研究[Zhang et al, 2017a;张等人,2017b]的中端学习如下。

主动问答学习与或图

  基于 [Zhang et al, 2016] 提出的语义与或表示,[Zhang et al, 2017a] 开发了一种使用主动问答对预训练 CNN 的卷积层中的神经模式进行语义化的方法,建立分层对象理解的模型。
  如图 13 所示,CNN 已针对对象分类进行了预训练。该方法旨在提取四层可解释的与或图(AOG)来解释隐藏在 CNN 中的语义层次结构。AOG 编码四层语义,涵盖特征图上的语义部分(OR 节点)、部分模板(AND 节点)、潜在模式(OR 节点)和神经单元(终端节点)。在 AOG 中,AND 节点表示零件的组成区域,OR 节点对局部零件的替代模板/变形候选者列表进行编码。顶部部件节点(OR 节点)使用其子节点来表示部件的一些模板候选。第二层中的每个部分模板(AND 节点)使用子潜在模式来表示其组成区域。第三层(OR 节点)中的每个潜在模式自然对应于滤波器特征图中的一定范围的单元。潜在模式选择此范围内的单位来解释其几何变形。
在这里插入图片描述
  为了学习 AOG,[Zhang et al, 2017a] 允许计算机主动识别和询问当前 AOG 无法解释其神经模式的对象。如图14所示,在主动问答的每个步骤中,当前AOG用于在所有未注释图像中定位对象部分。该方法主动选择不能很好地拟合AOG的对象,即无法解释的对象。该方法预测询问每个无法解释的对象的潜在收益,从而确定最佳的问题序列(例如询问模板类型和无法解释的对象部分的边界框)。通过这种方式,该方法使用答案来完善现有零件模板或挖掘新对象零件模板的潜在模式,以增长 AOG 分支。图 15 比较了不同方法的部分定位性能。基于 QA 的学习比其他基线表现出显着更高的效率。该方法使用大约 1/6-1/3 的零件注释进行训练,但与 fast-RCNN 方法相比,实现了类似或更好的零件定位性能。
在这里插入图片描述

CNN 模式的交互式操作

  使用对象边界框的注释对 CNN 进行预训练以进行对象分类。[Zhang et al, 2017b] 探索了一种交互式方法来诊断 CNN 的知识表示,以便将 CNN 模式转移到模型对象部分。与需要大量训练样本的传统​​ CNN 端到端学习不同,该方法在单次/多次学习场景中从 CNN 中挖掘对象部分模式。
  更具体地说,该方法使用很少(例如三个)对象图像上的部分注释进行监督。给定一个部分的边界框注释,所提出的方法首先使用 [Zhang et al, 2016] 从 CNN 的卷积层中挖掘与注释部分相关的潜在模式。AOG 用于组织所有挖掘的模式作为目标部分的表示。该方法将挖掘的潜在模式可视化,并要求人们交互式地删除与目标部分无关的潜在模式。通过这种方式,人们可以简单地从 AOG 分支中删除不正确的潜在模式来完善 AOG。图 16 可视化了最初挖掘的模式和人类交互后剩余的模式。在人类交互的指导下,[Zhang et al,2017b]表现出了卓越的零件定位性能。
在这里插入图片描述

未来趋势和结论

  本文综述了网络可解释性范围内的几个研究方向。在早期,神经单元模式的可视化是理解网络表示的起点。随后,人们逐渐发展出分析神经网络特征空间和诊断神经网络内部潜在表征缺陷的方法。目前,将卷积层的混沌表示分解为图模型和/或符号逻辑已成为打开神经网络黑匣子的新兴研究方向。将预训练的 CNN 转换为解释图的方法已被提出,并在知识转移和弱监督学习方面表现出显着的效率。
  端到端学习可解释神经网络,其中间层编码可理解的模式,也是一种未来趋势。 可解释的 CNN 已经开发出来,其中高卷积层中的每个过滤器代表一个特定的对象部分。
  此外,基于 CNN 模式的可解释表示,语义级中端学习被提出来加速学习过程。 与传统的端到端学习相比,中端学习允许人类交互来指导学习过程,并且可以用很少的注释进行监督。
  未来,我们相信中端学习仍将是一个基础研究方向。此外,基于可解释网络的语义层次结构,在语义级别调试 CNN 表示将创建新的视觉应用程序。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

抖音双11进入决赛圈,爆款王炸单品竟是.....

今年,抖音将双11战线拉长,给足品牌和消费者时间备战,第一轮抢跑期战绩亮眼,多项双11销售增长记录被刷新,引爆全域流量。最后几天,抖音商城全面进入终局厮杀阶段,爆发期下半程对比抢跑期增速放缓…

通信原理板块——图像压缩编码

微信公众号上线,搜索公众号小灰灰的FPGA,关注可获取相关源码,定期更新有关FPGA的项目以及开源项目源码,包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 1、图像压缩编码 图像压缩编码可以…

Jmeter 基本使用以及性能测试基本流程使用总结

使用场景 需要对一部分接口做性能测试,并检验修改后的效果下载安装 搜索 Apache JMeter - Download Apache JMeter 或直接到官网 https://jmeter.apache.org/download_jmeter.cgi?cm_mc_uid15063477198714828218851&cm_mc_sid_502000001483277541下载 选择 zi…

2023年11月数据库流行度最新排名

点击查看最新数据库流行度最新排名(每月更新) 2023年11月数据库流行度最新排名 TOP DB顶级数据库索引是通过分析在谷歌上搜索数据库名称的频率来创建的 一个数据库被搜索的次数越多,这个数据库就被认为越受欢迎。这是一个领先指标。原始数…

Linux系统环境变量

Linux系统环境变量 1. 环境变量1.1 定义环境变量1.2 使用环境变量 2. 环境变量作用2.1 PATH 3. 设置环境变量3.1 设置系统级环境变量3.2 设置用户级环境变量3.3 设置临时环境变量 1. 环境变量 在Linux系统中,常用的关键信息以键值对(KeyValue&#xff09…

用C++编写动画+音频版极乐净土

#define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<graphics.h> #include<Windows.h> #include<MMSystem.h>//播放音乐所需要的头文件 #pragma comment(lib,"winmm.lib")//告诉编译器&#xff0c;加载winmm.lib库文件 #define C…

[OS]11.9.2023 中断

中断向量表 CPU的设计者必须在中断信息和其处理程序的入口地址之间建立某种联系&#xff0c;使得CPU根据中断信息可以找到要执行的处理程序。 中断信息中包含有标识中断源的类型码。根据CPU的设计&#xff0c;中断类型码的作用就是用来定位中断处理程序。 比如CPU 根据中断类型…

【数据结构】 二叉树理论概念!一文了解二叉树!

&#x1f3a5; 屿小夏 &#xff1a; 个人主页 &#x1f525;个人专栏 &#xff1a; 数据结构解析 &#x1f304; 莫道桑榆晚&#xff0c;为霞尚满天&#xff01; 文章目录 &#x1f4d1;前言&#x1f324;️树的概念☁️树的结构☁️树的小知识☁️树的表示与运用 &#x1f324…

python定时任务scheduler根据参数执行

python执行定时任务请参考&#xff1a;python使用apscheduler每隔一段时间自动化运行程序 传入参数时&#xff1a; 使用add_job函数中添加参数&#xff1a;args[参数1, 参数2]....传入参数顺序与对应位置一致 示例程序 import datetime from apscheduler.schedulers.backg…

一键批量删除文件名中的空格,高效整理您的文件

你是否曾经因为文件名中多余的空格而烦恼&#xff1f;这些空格不仅影响了文件的美观&#xff0c;还可能导致一些不必要的错误。现在&#xff0c;我们向您介绍一款全新的工具&#xff0c;它可以帮助您一键批量删除文件名中的空格&#xff0c;让您的文件整理更加轻松、高效&#…

【Java笔试强训】Day9(CM72 另类加法、HJ91 走方格的方案数)

CM72 另类加法 链接&#xff1a;另类加法 题目&#xff1a; 给定两个int A和B。编写一个函数返回AB的值&#xff0c;但不得使用或其他算数运算符。 题目分析&#xff1a; 代码实现&#xff1a; package Day9;public class Day9_1 {public int addAB(int A, int B) {// wr…

软件测评中心▏软件功能测试和非功能测试的区别和联系简析

在软件开发的过程中&#xff0c;功能测试和非功能测试是两个重要的环节。功能测试是指对软件的各项功能进行验证和确认&#xff0c;关注软件是否按照需求规格说明书进行了实现&#xff0c;是否满足了用户的功能需求。而非功能测试是指对软件的性能、可靠性、安全性等方面进行测…

异地传输大文件最快且安全稳定的办法

无论是企业还是个人&#xff0c;都会有传输大文件的需求&#xff0c;特别是在异地时&#xff0c;工作中最典型的就是项目资料、合同文档、视频素材等都是有一定的及时性的&#xff0c;那么在传输过程中&#xff0c;没有好的传输方式会间接性的影响到整体工作的进行&#xff0c;…

vue项目electron打包

1.设置国内镜像 npm config edit 命令行输入后会弹出npm的配置文档&#xff0c;需要文档末尾加入 electron_mirrorhttps://npm.taobao.org/mirrors/electron/ electron-builder-binaries_mirrorhttps://npm.taobao.org/mirrors/electron-builder-binaries/ 2.全局安装electron …

linux基础指令上篇

&#x1f4d9; 作者简介 &#xff1a;RO-BERRY &#x1f4d7; 学习方向&#xff1a;致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f4d2; 日后方向 : 偏向于CPP开发以及大数据方向&#xff0c;欢迎各位关注&#xff0c;谢谢各位的支持 引用 01. ls 指令2. pwd命…

目标检测算法 - YOLOv1

文章目录 1. 作者简介2. 目标检测综述3. YOLOv1算法3.1 预测阶段3.2 预测阶段后处理3.3 训练阶段 YOLO的全称是you only look once&#xff0c;指只需要浏览一次就可以识别出图中的物体的类别和位置。 YOLO是目标检测模型。目标检测是计算机视觉中比较简单的任务&#xff0c;用…

【图像分类】【深度学习】【Pytorch版本】GoogLeNet(InceptionV1)模型算法详解

【图像分类】【深度学习】【Pytorch版本】GoogLeNet(InceptionV1)模型算法详解 文章目录 【图像分类】【深度学习】【Pytorch版本】GoogLeNet(InceptionV1)模型算法详解前言GoogLeNet讲解Inception结构InceptionV1结构1x1卷积的作用 GoogLeNet模型结构GoogLeNet Pytorch代码完整…

Maven-构建生命周期与插件

一、概念和基础 Maven针对项目的构建和发布定义了一系列明确的步骤&#xff0c;根据作用不同这些步骤分属于不同的生命周期。Maven针对每个步骤都有对应的默认插件&#xff0c;Maven在构建过程中是通过调用这些插件完成整个过程的。开发者只需要通过简单的命令就可以驱动maven…

Microsoft SDKs 有文件重定义导致编译失败的处理

一个32位的mfc项目&#xff0c;之前采用vs2019编译&#xff0c;现在换了电脑(系统是win10)&#xff0c;采用vs2022编译时&#xff0c;提示如下错误&#xff1a; 1>------ 已启动生成: 项目: aAnsys, 配置: Debug Win32 ------ 1>cl : 命令行 warning D9035: “Gm”选项…