【论文精读】MedIAnomaly:医学图像异常检测的比较研究

news2024/9/24 23:31:22

文章目录

  • 一、前言
    • (一)异常检测
    • (二)文章贡献
  • 二、文献综述
    • (一)基于重建的异常检测
      • 1、图像重建
      • 2、特征重建
    • (二)基于自监督学习的异常检测
      • 1、一阶段方法
      • 2、两阶段方法
      • 3、其他与 SSL 相关的方法
    • (三)基于特征参考的异常检测
      • 1、知识蒸馏方法
      • 2、特征建模方法
  • 三、基准
    • (一)数据集和指标
      • 1、图像级异常分类数据集
      • 2、像素级异常分割数据集
      • 3、数据集摘要
      • 4、评估指标
    • (二)实现基准
      • 1、统一实现重构方法
      • 2、统一实施自监督方法
  • 四、实验与分析
    • (一)方法对比
      • 1、图像级 AnoCls上的性能
      • 2、像素级 AnoSeg上的性能
    • (二)重建方法分析
      • 1、网络架构的影响
      • 2、潜在空间限制的影响
      • 3、距离函数对重建误差的影响
      • 4、梯度策略的效果
    • (三)SSL方法分析
      • 1、没有 ImageNet 权重的方法
      • 2、使用 ImageNet 权重的方法
  • 五、挑战和未来方向
    • (一)AE的潜在空间配置
    • (二)用于测量重建误差的距离函数
    • (三)利用 ImageNet 预训练权重
    • (四)异常检测的特殊设置
      • 1、一类半监督设置
      • 2、零/少样本设置
  • 六、总结


一、前言

(一)异常检测

  • 异常检测(AD)的目的: 检测出偏离了预期正常模式的异常样本。
  • 异常检测的原理: 假设大量具有相似模式的正常样本是容易获得的,而具有多样化和位置模式的异常样本很难全面收集。因此AD方法一般只需要正常数据即可进行训练,不需要异常样本,因此在医学领域的罕见病识别和健康筛查中发挥着重要作用。
  • 异常检测研究的现状: 相关研究众多,但是缺乏公正、全面的评价,导致一些结论模糊不清,阻碍了该领域的发展:
    • 现有工作中使用不同的数据集或分区会妨碍再现性和可比性,从而破坏研究结果的可靠性
    • 尽管有很多方法属于同一范式,但缺乏统一的实现会导致不同的网络架构和不同的训练技巧,从而导致不公平的比较

(二)文章贡献

文章建立了一个统一实施和比较的医学基准,对典型的 AD 方法进行全面、公平的比较。

  • 对常见异常检测方法进行了分类
    • 基于重建的方法(图像重建和特征重建)
    • 基于自监督学习的方法(单阶段和两阶段)
    • 基于特征参考的方法(知识蒸馏和特征建模)
  • 组织了七个医学数据集,包括五种图像模式
  • 使用整理的数据集对二十七种代表性方法进行了全面、统一的比较,并分析了这些方法中采用的关键组件的效果
  • 通过实验和分析,总结了医学异常检测领域尚未解决的挑战和潜在的未来方向

二、文献综述

(一)基于重建的异常检测

基于重建的方法通常依赖于生成模型,例如生成对抗网络(GAN)、自动编码器(AE)或其变体。

  • 训练一个重建模型来仅重建正常图像,然后在推理过程中利用重建误差作为异常分数。
  • 基本假设是,仅在正常图像上训练的模型将难以准确重建看不见的异常区域,进而在这些区域上产生较高的重建误差。
    在这里插入图片描述

1、图像重建

图像重建方法直接在图像空间中执行重建和异常分数计算。

图像重建工作存在的问题:

  • GAN 学习正常图像的流形,并根据重建图像和中间鉴别器特征计算重建误差。但是GAN模型很难训练,并且容易陷入记忆陷阱。

  • 普通 AE 及其变体方法具有稳定的训练过程,但重建质量往往不是最优的。

  • 基于重建的AD的假设并不总是成立:

    • 问题一:模型由于其泛化能力,可能会重建一些看不见的异常区域,从而导致假阴性。
    • 问题二:由于网络容量有限,正常区域的固有重建误差是不可避免的,从而导致误报。

现有工作对于上述问题都做了一系列的探究,另外,除了上述利用图像重建误差的方法之外,一些研究还研究了流行的视觉注意技术,这些技术通常用于突出显示图像中的重要区域,因此已被探索用于定位异常区域。

2、特征重建

  • 原理:特征重建方法重建高级特征图而不是图像强度。他们采用预先训练的深度神经网络将图像映射到特征空间,并在特征空间中进行重建。
  • 优点:特征重建方法的改进可归因于特征与图像相比具有更强的判别能力。在特征空间中,异常可能与正常样本有更显着的偏差,从而阻碍了异常的重建。因此,基于重建的 AD 的问题一得到了一定程度的缓解。

(二)基于自监督学习的异常检测

自监督学习(SSL)是一种学习方法的范例,其中网络使用带有生成的伪标签的前置任务进行显式训练

现有的方法有两种范式:一阶段方法和两阶段方法。
在这里插入图片描述

1、一阶段方法

  • 一阶段方法训练模型来检测手动合成的异常,并直接应用训练的模型来检测真实的异常。
  • 这种方法的原理是设计真实的伪异常,以便在这些合成异常模式上训练的模型能够很好地泛化到未见过的真实异常样本。

2、两阶段方法

  • 两阶段方法首先通过正常训练数据上的前置任务学习自监督表示,然后在学习到的表示上构建一类分类器
  • 该方法的原理是利用正常训练数据设计前置任务,学习能够区分正常样本和异常样本的判别表示。

流行的前置任务有:对比学习、对正常样本和合成异常进行分类、对ImageNet 预训练深度特征的使用和适应

3、其他与 SSL 相关的方法

除了上述典型的 AD 方法之外,SSL 还以各种其他方式设计来帮助 AD。

(三)基于特征参考的异常检测

基于特征参考的方法根据当前特征和参考特征之间的差异来操作 AD,这些方法可以分为知识蒸馏方法和特征建模方法两类。

1、知识蒸馏方法

知识蒸馏方法利用教师网络提取的当前输入的特征图作为比较的参考。

具体来说,知识蒸馏方法训练学生网络来回归预训练教师网络的正常特征图。在不了解异常的情况下,学生网络的特征图将与异常区域的教师网络的特征图不同。教师和学生的特征图之间的差异被设计为异常分数。

2、特征建模方法

特征建模方法采用正常训练数据的原型,由 ImageNet 上的预训练模型提取作为比较的参考。

特征建模方法利用预训练网络的中间特征对正常图像块的局部特征进行建模,然后选择一组代表性原型存储在存储库中。在推理过程中,将测试补丁特征与存储原型的距离作为异常分数。

三、基准

(一)数据集和指标

文章组织了七个包含不同图像模式的医学数据集:两个胸部 X 射线数据集、两个脑部 MRI 数据集、一个视网膜眼底图像数据集、一个皮肤镜图像数据集和一个组织病理学数据集。其中六个数据集用于评估图像级异常分类,而一个数据集提供用于测试图像的像素级注释,从而可以评估像素级异常分割。

在AD模型的训练过程中,异常样本和标签是无法访问的。因此作者不使用验证集来选择模型。

1、图像级异常分类数据集

RSNA 数据集:包含 8851 个正常和 6012 个肺部不透明 CXR。

  • 正常训练数据集Dtrain:3851张正常图像
  • 测试数据集Dtest:1000张正常图像和1000张异常(肺部不透明)图像

VinDr-CXR 数据集:包含 10606 个正常 CXR 和 4394 个异常 CXR,总共包括 14 类异常。

  • Dtrain:4000张正常图像
  • Dtest:1000张正常图像和1000张异常图像

脑肿瘤数据集:包含 2000 个无肿瘤的 MRI 切片、1621 个神经胶质瘤的 MRI 切片和 1645 个脑膜瘤的 MRI 切片。神经胶质瘤和脑膜瘤被视为异常。

  • Dtrain:1000 张正常图像(无肿瘤)
  • Dtest: 600 张正常图像和 600 张异常图像(300 张胶质瘤图像和 300 张脑膜瘤图像)

LAG 数据集:包含 3143 张正常视网膜眼底图像和 1711 张异常青光眼视网膜眼底图像。

  • Dtrain:1500张正常图像
  • Dtest:811张正常图像和811张异常图像

ISIC2018 数据集:包含七个类别

  • 将痣(NV)作为正常类别
  • Dtrain:官方训练集中的6705张正常(NV)图像
  • Dtest:官方测试集中的909张正常(NV)图像和603张异常(其他六类)图像作为Dtest

Camelyon16 数据集:使用 Bao 等人提供的经过精心处理的 Camelyon16 版本进行 AD,并将他们的验证和测试集合并为我们的 Dtest。 WSI 在 40 倍放大倍数下被裁剪成 256 × 256 的块,并随机采样以构建 AD 的图像数据集。* * Dtrain:5088张正常图像

  • Dtest:1120张正常图像和1113张异常图像

2、像素级异常分割数据集

BraTS2021数据集:

  • 1251个分辨率为155×240×240的MRI病例,以及相应的肿瘤区域体素级别的注释
  • 每个案例都有多种模式,包括 T1、T1ce、T2 和flair,实验时只选取了flair,因为它对肿瘤区域最敏感
  • 预处理中,扫描图像被裁剪为 70 × 208 × 208 以去除空角

为了构建 Dtrain,从 1051 个 MRI 扫描中提取了 4211 个正常的 2D 轴向切片,而提取的切片彼此之间至少相距 5 个切片,确保相邻切片之间有足够的不同内容。对于 Dtest,类似地,从剩余 200 个 MRI 扫描中提取 828 个正常切片和 1948 个肿瘤切片。

3、数据集摘要

七个组织数据集中的正常和异常示例:
在这里插入图片描述

下表总结了数据集的详细信息,包括图像模态、支持的任务和重新分区。值得注意的是,数据集显示出明显的异常模式。

  • 胸部 X 射线、脑 MRI 和视网膜眼底数据集(即 RSNA、VinDr-CXR、Brain Tumor、BraTS2021 和 LAG)显示局部异常。这意味着异常图像包含健康版本,并在某些区域添加了病变。
  • Camelyon16 和 ISIC2018 呈现全局语义异常,其中异常图像与正常图像相比属于完全不同的类别。

在这里插入图片描述

4、评估指标

  • 图像级 AnoCl:ROC 曲线下面积 (AUC) 和平均精度 (AP)
  • 像素级 AnoSeg:像素级 AP (APpix) 和最佳可能的 Dice 分数 (⌈Dice⌉)

⌈Dice⌉ 是在测试集上的最佳操作点计算的数据集方面的 Dice 分数,无需选择阈值并减轻相关影响。不采用像素级 AUC,因为它对误报不敏感,这在大多数像素为负值的医学图像中尤其重要。

(二)实现基准

1、统一实现重构方法

用于重建 AD 的 AE 包括一个将输入压缩为紧凑的潜在特征表示的编码器: z = f e ( x ) ∈ R d z = f_e(x) ∈ R^d z=fe(x)Rd,以及一个通过解码表示来重建原始输入的解码器: x ^ = f d ( z ) ∈ R C × H × W \hat{x} = f_d(z) ∈ R^{C×H×W} x^=fd(z)RC×H×W

  • 为了确保公平性,我们尽可能对所有基于重建的方法采用相同的 AE。
  • 编码器由四个卷积块组成,每个卷积块将分辨率下采样为 H i n 2 × W i n 2 \frac{H_{in}}{2}× \frac{W_{in}}{2} 2Hin×2Win
  • 编码器块后面是展平操作和两个全连接层,将特征压缩为维度 d 的向量。
  • 解码器呈现出与编码器对称的架构。
    在这里插入图片描述

该 AE 的默认配置如下:
在这里插入图片描述

2、统一实施自监督方法

单阶段SSL方法包括特征提取器 f f f和分类/分割头 g c g_c gc/ g s g_s gs,而两阶段方法包括特征提取器 f f f 、投影头 g g g 和​​一类分类器 ψ ψ ψ

  • 为了确保公平性,我们尽可能采用 ResNet18(不包括分类层)作为所有基于 SSL 的方法的特征提取器。输入分辨率设置为 224 × 224。
  • 使用 Schl ̈ uter 等人的统一实现作为所有一阶段分割方法的框架
  • 使用https://github.com/Runinho/pytorch-cutpaste 的实现作为所有两阶段方法的基础。
  • 由于大多数两阶段方法利用分类任务作为前置任务,因此基于相同的框架实现一阶段分类方法,但保留分类头进行评估。

在这里插入图片描述

SSL 方法的默认配置如下:
在这里插入图片描述

四、实验与分析

(一)方法对比

1、图像级 AnoCls上的性能

  • ImageNet 权重对于医学 AD 非常有效且强大
    重建方法的 SOTA 性能通常是通过 AE-PL、AE-U 和 FAE-SSIM 实现的,而最具竞争力的 SSL 方法是利用或微调ImageNet 预训练权重的方法。除了 AE-U 之外,大多数 SOTA 方法都依赖于 ImageNet 预训练权重。

  • 在没有 ImageNet 权重的情况下,重建方法在图像级 AnoCl 中优于 SSL 方法
    当排除使用 ImageNet 权重时,SOTA SSL 方法是两阶段 AnatPaste。然而,该方法在不同数据集上表现出不稳定的性能。它在 LAG 和 BraTS2021 数据集上未能优于普通 AE,这表明它对异常模式具有高度敏感性。相比之下,AE-U 和 DAE 是不使用 ImageNet 权重的 SOTA 重建方法,在大多数数据集上表现出稳定且有竞争力的性能。
    在这里插入图片描述

2、像素级 AnoSeg上的性能

  • 重建方法在像素级 AnoSeg 中显着优于 SSL 方法
    在 BraTS2021 上的分割指标方面,vanilla AE 优于所有 SSL 一阶段分割方法。这可能是由于通过合成数据分类训练的 SSL 方法依赖于合成异常模式与真实异常之间的相似性。当真正的异常区域与合成异常相比在外观上表现出显着差异时,他们很难识别这些区域。因此,它们在此类数据集上的性能会下降。

  • DAE 实现了最佳的 AnoSeg 性能,超过了第二好的方法近 20% ⌈Dice⌉

这种卓越的性能可归因于 DAE 采用的定制 UNet 架构,与 AE 相比,它可以生成更详细的重建。细粒度重建有助于消除误报并准确定位异常区域。相比之下,Mao 等人的先前工作表明,具有跳跃连接的 UNet 模型可能会无意中向解码器泄漏异常信息,从而导致性能下降。 DAE 采用的去噪训练方法有效地克服了这个问题,同时利用了 UNet 架构强大的重建能力。

在这里插入图片描述

(二)重建方法分析

1、网络架构的影响

  • 使用具有不同输入大小 H × W H × W H×W、块深度 D D D 和基本宽度 C 0 C_0 C0 的 AE 进行了广泛的实验来研究网络架构在基于重建的方法中的影响。
  • 实验结果表明,基于重建的医学图像 AD 并不能从大分辨率或大型网络中受益。这种基于重建的 AD 的观点表明,增加模型的复杂性可能是不必要的。

2、潜在空间限制的影响

基于重构的 AD 方法将输入数据映射到压缩的潜在空间,然后相应地重构输入。潜在空间充当信息瓶颈,可能阻碍异常信息的传播,并且因此阻碍了异常的重建。

  • 首先,在局部异常检测中,重建网络的bottleneck足够窄是首选。
    通过采用适当紧凑的潜在尺寸,AE可以有效地压缩和表示正常变化,同时限制其泛化能力,使其无法表示异常变化。相反,如果潜在尺寸太大,网络可能会对看不见的异常变化表现出不期望的泛化,从而导致假阴性。

  • 其次,不同数据集的最佳潜在大小有所不同。

    • 正常数据表现出更多变化(即信息更丰富)的数据集往往更喜欢更大的潜在大小。
    • 为检测全局语义异常而设计的重建方法往往受益于较大的潜在尺寸。
    • 与密集 AE 相比,空间 AE 显着减少了参数数量,但在某些数据集上的性能可能会下降。这种现象可能是由于空间瓶颈将不同区域压缩到一致的程度,而不管这些区域中存在的信息量如何。
  • 除了最简单的潜在维度缩减之外,还存在其他流行的设计,以各种方式施加潜在空间限制。然而,与潜在维度缩减相比,现有的限制潜在空间的方法都没有表现出优越的性能。

3、距离函数对重建误差的影响

现有工作采用不同的距离函数来测量重建误差,包括简单的 l2 和 l1 损失、结构相似性(SSIM)和知觉损失(PL)。
实验结果表明:

  • 虽然标准 l2 和 l1 损失在大多数数据集上表现出相当的性能,但 SSIM 和 PL 损失却呈现出显着的结果。
  • 用于测量重建误差的距离函数在基于重建的 AD 中发挥着重要作用,其性能与数据集中存在的异常模式密切相关。因此,开发合适的距离函数来测量不同场景下异常的重建误差是一个有前途的方向。

4、梯度策略的效果

  • 基于梯度的异常分数(例如 AE-Grad 和 VAE-Gradrec)的方法比使用原始异常分数/原始重建误差(即 AE 和 VAE)的方法呈现出稍好的性能。这一发现可能会启发我们将全局信息聚合成一些标量并使用梯度输入作为预测图。
  • 合并了 KL 项的 VAE-Gradcombi 的性能比 VAE-Gradrec 差。这种现象提出了一个问题,即如何通过梯度策略正确利用额外信息作为重建误差的补充。

(三)SSL方法分析

1、没有 ImageNet 权重的方法

没有 ImageNet 权重的 SSL 方法主要依赖于合成数据的训练。

  • 首先,比较相同模式下的方法,基于 SSL 的方法中更真实的合成异常通常会带来更好的性能。
  • 其次,比较不同模式下的每种异常合成方法,在基于 SSL 的 AD 中,去除分类头并利用学习到的表示的两阶段方法优于直接使用低于标准分类头的一阶段方法。

2、使用 ImageNet 权重的方法

直接利用固定的 ImageNet 预训练网络来提取一类分类器的表示优于包含更复杂训练过程的最流行的 SSL 方法。

五、挑战和未来方向

(一)AE的潜在空间配置

蔡等人利用信息论揭示最佳潜在空间的熵应与正常数据的熵保持一致。一个有前途的方向是量化正常训练数据的信息熵,并开发动态约束潜在空间的自适应方法,以接近不同数据集上正常数据的熵。这种方法将能够确定基于 AE 的 AD 方法的理论上的最佳解决方案。

(二)用于测量重建误差的距离函数

良好的距离函数可能是违反直觉的。最好通过深度学习自动学习距离函数,而不是依赖手动设计。

(三)利用 ImageNet 预训练权重

基于重建和基于自监督学习的方法中的 SOTA 方法都广泛利用 ImageNet 预训练权重,具体采用的形式包括距离测量(例如 AE-PL)、输入数据转换(例如特征重建方法)和直接特征提取(例如两阶段 SSL)方法)。

  • ImageNet 权重在距离测量中的有效利用表明,在基于重建的 AD 中,需要测量语义差异,而不是重建误差中的低水平强度差异。
  • ImageNet权重在输入数据变换中的应用表明了使用特征图增强异常区域显着性的可行性。
  • 使用 ImageNet 权重进行特征提取强调了它们在 AD 中的判别能力,激励进一步适应以提高性能。

然而基于特征参考的方法(如知识蒸馏和特征建模方法)在医学图像中的性能不如使用 ImageNet 权重的其他策略。

此外,由于自然图像和医学图像之间的差距,ImageNet 预训练的权重肯定不是最优的,这使得对目标数据集的微调成为一个有前途的方向。

(四)异常检测的特殊设置

1、一类半监督设置

  • 一类半监督设置使用正常数据和未标记数据进行训练,其中可能包含一些异常。

    • 在这种设置下,大多数方法采用两个模块,一个专门针对正常数据进行训练,另一个针对正常数据和未标记数据进行训练。这些方法利用两个模块之间重建的差异来识别异常。
    • 其他方法训练基于 GAN 的模型来消除未标记数据中的潜在疾病,为正常和未标记的输入生成健康的重建。然后将重建误差用作异常分数。
  • 一类半监督设置利用现成的未标记数据来协助 AD。然而,每个数据集仍然需要有足够数量的正常样本才能有效地训练模型。

2、零/少样本设置

零/少样本设置训练 AD 方法,几乎​​不需要目标数据集中的样本。与一类和一类半监督设置相比,这种设置减少了对大量正常训练数据的需求,从而能够在全新场景中快速部署模型。

然而,零/少样本设置在医学领域尚未得到广泛探索,现有方法在医学数据上没有表现出令人满意的性能。医学图像比自然工业图像具有更复杂的变化,在此背景下开发 AD 方法提出了额外的挑战。应对这些挑战仍然是未来研究的一个关键领域。

六、总结

本文提出了医学异常检测的综合基准,包含七个数据集和二十七种典型方法的统一比较。通过广泛的评估和分析,文章揭示了一些可以指导该领域未来研究的关键发现和挑战。

  • 在没有预训练的情况下,基于重建的方法比基于 SSL 的方法表现出更大的鲁棒性

    • 在基于重建的方法中,最简单的 AE 可以作为良好的基线,在各种数据集上提供令人满意的性能,并在 Hyper-Kvasir 和 OCT2017 等简单数据集上提供近乎完美的指标
    • 重建方法中潜在空间配置和重建误差测量对性能产生了重大影响
  • ImageNet 预训练权重在医学 AD 中表现出高效性和效力

    • ImageNet 预训练权重以多种方式成功使用,包括距离测量、输入数据转换和直接特征提取
    • 视觉语言模型 (VLM) 的最新进展为在 AD 中利用这些强大的预训练模型提供了新的可能性
  • AD 的几个特殊设置(例如一类半监督设置和零/少样本设置)与现实世界场景密切相关,值得进一步探索。特别是,VLM 的重大进展促进了 AD 零/少样本方法的发展,这在未来应该引起更多关注。

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

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

相关文章

每日OJ题_BFS解决最短路①_力扣1926. 迷宫中离入口最近的出口

目录 力扣1926. 迷宫中离入口最近的出口 解析代码 力扣1926. 迷宫中离入口最近的出口 1926. 迷宫中离入口最近的出口 难度 中等 给你一个 m x n 的迷宫矩阵 maze (下标从 0 开始),矩阵中有空格子(用 . 表示)和墙&…

2024最新数据分级分类的架构方法流程指南(附下载)

以下是资料目录,如需下载请前往知识星球下载:https://t.zsxq.com/18KTZnJMX ​ ​ ​​​​​​​​​​​​​ 以下是资料目录,如需下载请前往知识星球下载:https://t.zsxq.com/18KTZnJMX ​

Linux/Iclean

Iclean Enumeration nmap 先使用默认规则扫描常用的端口,发现对外开放了 22 和 80 端口,然后扫描这两个端口的详细信息,结果如下,很常规的结果,没发现什么有趣的东西 ┌──(kali㉿kali)-[~/vegetable/HTB/Iclean] …

Python100个库分享第14个—plyfile(将ply文件展示3d模型)

目录 专栏导读库的介绍库的安装ply文件格式介绍ply下载网址(是斯坦福大学的3d模型下载网址)报错解决完整代码参考:总结 专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️…

003 【笔记神器】Obsidian:打造属于自己的万能工作台

前言:Obsidian 是一款很多大神都在用的笔记软件,具有强大的功能,能够满足日常各种笔记的需求。强大之处在于:Obsidian 能够安装各种强大的插件,实现各种功能。 废话不多说,玩转 Obsidian 仅需这篇文章足矣&…

ThreadX在STM32上的移植:通用启动文件tx_initialize_low_level.s

在嵌入式系统开发中,实时操作系统(RTOS)的选择对于系统性能和稳定性至关重要。ThreadX是一种广泛使用的RTOS,它以其小巧、快速和可靠而闻名。在本文中,我们将探讨如何将ThreadX移植到STM32微控制器上,特别是…

IDP之Backstage - 环境搭建

0. 目录 1. 前言2. 环境准备(Windows10下)2.1 安装nvm2.2 git和docker安装 3. 创建模板项目3.1 典型错误: fails on the yarn install step3.2 再次启动3.3 验证 4. 相关 1. 前言 本不想写这篇,因为看着官网文档写着挺简单的,但实…

gcn代码处理出现的问题

README 版本不一致 python 2.7 PYTHON 3.7 切换 TensorFlow系统的学习使用 数据集下载

小程序变更主体需要多久?

小程序迁移变更主体有什么作用?小程序迁移变更主体的好处有很多哦!比如可以获得更多权限功能、公司变更或注销时可以保证账号的正常使用、收购账号后可以改变归属权或使用权等等。小程序迁移变更主体的条件有哪些?1、新主体必须是企业主体&am…

3dmax制作小熊猫的基本流程

1.透视图插入面片,改高度宽度,把参考图放进面片里。 2.角度捕捉切换,角度改为90 3.shift旋转,旋转面片,复制一个出来 4.在前视图,把参考图片中的正式图小熊猫的一半的位置(可以是眼睛&#x…

2024最新 PyCharm 2024.1 更新亮点看这篇就够了

2024最新 PyCharm 2024.1 更新亮点看这篇就够了 文章目录 2024最新 PyCharm 2024.1 更新亮点看这篇就够了🚀 PyCharm 2024.1 发布:全面升级,助力高效编程!摘要引言 🚀 快速掌握 Hugging Face:模型与数据集文…

【微服务】Nacos生产环境配置技巧分享

前面我们介绍了Nacos作为配置中心组件实现,是如何配置和接入的。对于Nacos来说,他是集注册中心及配置中心为一体的。基于它的强大能力,我们在这里来统一分享几个Nacos在生产环境的配置技巧。 一、热加载配置 Nacos 本身是支持配置热加载的&…

面试官:MySQL的自增 ID 用完了,怎么办?

如果你用过或了解过MySQL,那你一定知道自增主键了。每个自增id都是定义了初始值,然后按照指定步长增长(默认步长是1)。虽然,自然数是没有上限的,但是我们在设计表结构的时候,通常都会指定字段长…

基于Spring Boot的入职匹配推荐系统设计与实现

基于Spring Boot的入职匹配推荐系统设计与实现 开发语言:Java框架:springbootJDK版本:JDK1.8数据库工具:Navicat11开发软件:eclipse/myeclipse/idea 系统部分展示 管理员登录界面,登录成功后进入到系统操…

一文搞定关于SkyWalking告警的那些事儿

Apache SkyWalking告警是由一组规则驱动,这些规则定义在config/alarm-settings.yml文件中。 告警规则 告警规则定义了触发告警所考虑的条件。告警规则有两种类型,单独规则和复合规则,复合规则是单独规则的组合。这里重点介绍一下单独规则&a…

怎么转行做产品经理?

小白转产品经理第一点要先学基础理论知识,学了理论再去实践,转行,跳槽! 学理论比较好的就是去报NPDP的系统班,考后也会有面试指导课、职场晋升课程,对小白来说非常合适了~(B站:不爱…

QT文本操作

文本的操作 文本的读写流程 文本的读写流程 // 文本的读写流程// 1.打开文件》打到文本》QFileDialog::getOpenFileName返回的是// 一个字符串,包括了路径文件名字// open()方法打开文本// 2.读写文本// readAll(),readLine(),write()// 3.关闭文本 // close()使用…

kylin java.io.IOException: error=13, Permission denied

linux centos7.8 error13, Permission denied_linux open error13-CSDN博客 chmod -R 777 /home/zengwenfeng/kkFileView-4.2.1 2024-04-15 13:15:17.416 WARN 3400 --- [er-offprocmng-1] o.j.l.office.LocalOfficeProcessManager : An I/O error prevents us to determine…

蓝桥杯——18

学习视频&#xff1a;21-广度优先搜索练习_哔哩哔哩_bilibili Q&#xff1a;密码锁 #include<iostream> #include<queue> using namespace std; int s, e; bool vis[10000]; struct node {int state;int step;node(int s1, int s2) {state s1;step s2;} }; int…

排序算法—堆排序

文章目录 堆排序堆思路过程建堆排序 代码实现 堆排序 时间复杂度&#xff1a;O(N*logN) 稳定性&#xff1a;不稳定&#xff08;相同元素排序后的相对位置改变&#xff09; 堆 堆的逻辑结构是一棵完全二叉树&#xff1b;堆的物理结构是一个数组&#xff0c;通过下标表示父子结…