ML-Leaks Note

2023-05-16

ML-Leaks: Model and Data IndependentMembership Inference Attacks and Defenses onMachine Learning Models(机器学习模型上与模型和数据无关的成员推理攻击和防御)

Abstract

  • 提出了首个针对于成员推理的有效防御机制
  • 本文提出的ML-Leaks不需要shadow model & target model structure & dataset distribution
  • 使用了八种不同的数据集

Introduction

  • ML security & Privacy

    • Model inversion(模型反演) [Model Inversion Attacksthat Exploit Confidence Information and Basic Countermeasures]
    • Adversiral examples(对抗样本)[Explaining and Harnessing Adversarial Examples]
    • Model extraction(模型提取)[StealingMachine Learning Models via Prediction APIs, Stealing Hyperparameters in MachineLearning,Towards Reverse-Engineering Black-Box Neural Networks]
  • 2017 Membership Inference Attacks Against Machine Learning Models

    这种攻击的思路是: 使用多个机器学习模型(每个预测类别一个),称为攻击模型,以便根据目标模型的输出(即后验概率)进行成员推理。假设目标模型是黑盒API。建议构建多个阴影模型以模仿目标模型的行为,并推导训练攻击模型所需的数据(即后验和真实标签成员)。首先,攻击者需要建立多个影子模型,每个影子模型与目标模型共享相同的结构,这是通过使用训练目标模型构建影子模型的相同MLaaS(Amazon ML Service)来实现的。其次,用于训练阴影模型的数据集与目标模型的训练数据来自相同的分布,这一假设适用于大多数攻击评估。作者进一步提出了合成数据生成的方法来放松这一假设。但是,该方法只能应用于包含二进制的数据集。

    这两个假设很强,从而大大减小了针对ML模型的成员推理攻击的范围。在本文中,我们逐渐放宽这些假设,以表明更广泛适用的攻击方案是可能的。我们的研究表明,实际上,ML的成员推断可以比以前考虑的情况以更少的假设以更简单的方式执行。为了纠正这种情况,我们进一步提出了两种有效的防御机制。

  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5BanZCae-1615557548666)(https://i.loli.net/2021/03/09/uT754h3wWolJPVB.png)]

    • Adversary 1 : 使用1个shadow model 代替多个shadow model, 我们使用从图像到文本的八组不同的数据集)表明,通过一个影子模型和一个攻击模型,对手可以实现与Shokri等人所报告的平均相似的性能。 [38]。例如,当目标模型是在CIFAR-100数据集上训练的卷积神经网络(CNN)时,我们的简化攻击可实现0.95的precision和0.95的recall,而攻击具有10个阴影模型和100个攻击模型(如先前的工作[38])的为0.95percision,recall为0.94。

      precision & recall

      召回率是在所有正样本当中,能够预测多少正样本的比例,准确率为在所有预测为正样本中,有多少为正样本

      In Membership

      Recall 表示的是在所有的成员中, 能预测多少是成员的比例

      precision表示的是所有预测的是成员的样本中, 有多少个是真正的成员

    • Adversary 2: 在Adversary1的基础上不需要知道Target Model的结构。在这种情况下,我们提出了一种用于成员身份推断的数据传输攻击。具体来说,我们使用不同的数据集训练单个阴影模型。这意味着此处的影子模型不用于模仿目标模型的行为,而仅用于捕获机器学习训练集中数据点的成员资格状态。数据传输攻击可以在不查看target model的情况下, 生成综合数据我们的数据传输攻击的主要优势在于,对手无需查询目标模型即可生成综合数据。相比之下,以前的方法[38]平均需要156个查询才能生成一个数据点。这意味着我们的数据传输攻击效率更高,成本更低,并且MLaaS提供商很难检测到。数据传输攻击实现了数据集跨域, 在不同类型的数据集之间起作用(比如, 我们使用20个News 新闻文本数据集训练的shadow model。 能够获得0.94的精确率和0.93的召回率, 以攻击cifar-100数据集上训练的目标模型)

    • Adversary3: 不需要shadow model, attack 依赖于从目标模型中查询目标数据点时从目标模型获得的后验概率(结果)。我们显示,目标模型后验的统计度量(例如最大值和熵)可以很好地区分成员数据点和非成员数据点。为了进行具体的成员推理,我们提出了一种阈值选择方法。实验表明,这种简单的攻击仍然可以对多个数据集进行有效推断。

  • Defense

    • dropout

      成员推断攻击之所以有效,其原因之一是机器学习模型固有的过拟合特性。当一个ML模型面对一个经过训练的数据点时,对于一个类别而言,它返回较高的后验概率。因此,为了防御成员推理攻击,我们在深度学习中采用了一种经典方法,dropout,旨在防止过度拟合.dropout在每次训练迭代中随机删除完全连接的神经网络模型中固定比例的边。

    • model stacking

      dropout 适合DL, 如果model是ML的, 我们使用model stacking。模型堆叠是集成学习的主要类别。在模型堆叠中,以分层的方式组织了多个ML模型,以防止过度拟合。在我们的案例中,我们使用三种不同的机器学习模型构建目标模型。直接将原始训练数据作为输入,将两个模型放置在第一层中,而使用前两个模型的后代训练第三个模型。

  • This paper contribute

    • 通过充分放宽对抗性假设,我们扩大了成员推断攻击的类别。
    • 我们在八个不同的数据集上的三种不同对抗设置下评估成员推理攻击,最终得出一个模型和数据独立对手。广泛的实验表明,机器学习模型对安全的成员资格隐私构成了威胁。
    • 我们提出了两种防御机制,即dropout和模型堆叠,并通过实验证明了其有效性。

Preliminatation

  • Membership inference in ML model

    对于大多数分类模型,输出向量Y可以解释为所有类上的后验概率集合,并且所有值之和为1。在包含多个数据点的训练数据集(由DTrain表示)上学习ML模型的参数a预定义的学习对象。

    x T a r g e t x_{Target} xTarget : 目标数据点

    M M M: 机器学习model

    K K K: 额外获得的知识

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hiu3C5aJ-1615557548668)(https://i.loli.net/2021/03/10/q4njms8cYWBRGSd.png)]

    0, 1分别代表 x T a r g e t x_{Target} xTarget是否是model M的训练集成员, 假定是黑盒模型, 输入为 x T a r g e t x_{Target} xTarget, 输出为 M ( x T a r g e t ) M(x_{Target}) M(xTarget), A A A为attack model, 是一个二进制分类器

  • Dataset Description News、Purchase…

Towards model independent member ship inference attacks(Adversary1)

  • 我们首先定义威胁模型。然后,我们描述我们的第一个简化,即使用一个阴影模型而不是多个阴影模型。最后,我们提出了第二种简化方法,使对手不必了解目标模型的结构。

  • Threat Model

  • One Shadow model

    • shadow model training:

      分割数据集, D S h a d o w T r a i n , D S h a d o w O u t D_{Shadow}^{Train}, D_{Shadow}^{Out} DShadowTrain,DShadowOut, 使用 D S h a d o w T r a i n D_{Shadow}^{Train} DShadowTrain训练单个影子模型。

    • Attack model training:

      使用训练好的shadow model对 D S h a d o w T r a i n D_{Shadow}^{Train} DShadowTrain以及 D S h a d o w O u t D_{Shadow}^{Out} DShadowOut中的所有数据点进行predict, 获得相应的后验概率。 对于Shadow中的每个数据点,对于二进制类数据集,她将其三个最大后验概率(从高到低排序)或两个作为其特征向量。如果特征向量的对应的数据点在 D S h a d o w T r a i n D_{Shadow}^{Train} DShadowTrain中,标记为1,否则,标记为0.然后将所有生成的特征向量和标签用于训练攻击模型A。

    • Membership Interference

      使用 x T a r g e t x_{Target} xTarget查询模型Model获得其后验概率中最大的三个送到Attack model获得成员推理预测

    • Experimental Setup

      第一次将目标训练集对半分为 D S h a d o w 、 D T a r g e t D_{Shadow}、 D_{Target} DShadowDTarget , 再将 D S h a d o w 分 为 D S h a d o w T r a i n 与 D S h a d o w O u t D_{Shadow}分为D_{Shadow}^{Train}与D_{Shadow}^{Out} DShadowDShadowTrainDShadowOut , D T a r g e t D_{Target} DTarget用于攻击评估, 也将其分为一半, 一个用于训练目标模型(即 D T r a i n D_{Train} DTrain),并充当目标模型训练的成员数据,而另一个充当非成员数据点。

      针对与图像数据集MNIST、CIFAR、CIFAR100, 采用的Model为CNN, 由两个卷积层和两个池化层以及128个神经元的全连接层组成。对于其他图像数据集, 我们采用多层感知机模型。

    • Results

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uVjj0Kjv-1615557548669)(https://i.loli.net/2021/03/10/8iHOATkd9Kjg513.png)]

      我们将目标模型的过拟合水平量化为在训练集和测试集上的预测精度之间的差异.分别在CIFAR100和Purchase-100上进行测试,分别从epoch和Overfiting level来评估。

      对于我们的攻击,我们仅使用三个最高后验概率(按降序排列)作为攻击的特征。我们测试了在CIFAR-100,位置,MNIST和新闻数据集上使用更多后代的效果。图4的结果表明,此因素对大多数数据集的攻击性能没有显着影响。通常,三个后代可达到最佳性能,尤其是在MNIST数据集上。

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WQKEXLAs-1615557548670)(https://i.loli.net/2021/03/10/LhVgKBN3SfqYzXw.png)]

      随着取出的后验概率的个数增加, 我们可以发现,对于MNIST来说, 精确率会有所下降,Recall依旧不会改变

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BYJSLXFq-1615557548671)(https://i.loli.net/2021/03/10/CWwY2VJr8hMxyfG.png)]

      影子模型的数量对攻击并没有太大的影响

      将攻击放在Goole与Amazon实验平台进行测试, 我们使用Purchase-100和Location数据集进行评估,发现攻击的性能甚至比我们先前的本地评估还要强。对于Purchase-100数据集,我们对Google MLaaS的攻击具有0.90的精度和0.89的召回率,而我们的本地评估具有0.89的精度和0.86的召回率。对于位置数据集,精度为0.89,召回率为0.86,这几乎与我们的本地评估(0.88精度和0.86召回率)相似。

    • Target Model Structure

      上述攻击的假设之一是,对手知道目标模型的算法和超参数,并以相同的方式实现其影子模型。接下来,我们展示如何放松这个假设。我们首先关注目标模型的超参数,然后关注其使用的分类器类型。

      我们首先使用目标模型训练参数的一半训练阴影模型, 更准确地说,我们将批处理大小,隐藏的单位和正则化参数减小到一半。评估结果显示了成员推理攻击的灵活性:不了解模型超参数的对手仍然可以获得良好的性能。

    • 我们进一步假设对手对目标模型采用哪种分类算法一无所知。在这种情况下,我们的第一个尝试是使用任何分类器(例如随机森林)作为阴影模型,并攻击(非常可能)与阴影模型(例如CNN)不同的目标模型。但是,实验结果不是很乐观。为了在不了解目标模型的情况下改善攻击,我们构建了一组ML模型,每个模型都有不同的分类算法,并将它们组合为一个影子模型。每个单独的ML模型都称为子阴影模型。这是可以实现的,因为分类器的类型是有限的。这种攻击(也称为组合攻击)可以了解不同分类器的行为,因此可以基于假设存在以相同分类器作为目标模型训练的子阴影模型来攻击未知目标模型。具体来说,我们使用与第III-B节中相同的方法来训练多个子阴影模型,如图6所示,每个子阴影模型都是一个不同的分类器。每个子阴影模型训练的数据是相同的。所有子阴影模型生成的所有特征都堆叠在一起,即使用更大的数据集训练攻击模型A.在这个新的数据集中, D S h a d o w D_{Shadow} DShadow中的每个数据点针对不同的子阴影模型的输出多次表示。

Towards model independent member ship inference attacks(Adversary2)

我们放宽对具有与目标模型的数据集相同分布的数据集的对手的假设。

  • 删除了Adversary1中的假设我们拥有与目标模型的训练数据相同的分布, 17年的文章提出多次查询目标模型以生成综合数据来训练shadow model。

  • 利用了来自与目标模型的训练数据不同分布的现有数据集来训练它的影子模型。我们将此攻击称为数据传输攻击。这里的影子模型不是模仿目标模型的行为,而只是为了总结数据点在机器学习模型的训练集中的成员状态。由于仅使用三或两个(对于二进制数据集而言),因此使用了最大的后验对于攻击模型,我们还可以忽略具有不同类别数量的数据集所带来的效果。

  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QAqlEvKD-1615557548672)(https://i.loli.net/2021/03/11/PfT8mpCBJsXkYKA.png)]

  • 为什么数据传输攻击效果很好 ?

    我们针对所有数据集的目标ML模型,选择成员数据点和非成员数据点的后三个最高点(类似于我们的攻击),然后使用非线性降维技术( t-SNE)。我们在图8a中显示了两个数据集(不同类型)的结果,在这两个数据集之间,我们的转移攻击是有效的。如我们所见,这些数据集的成员点和非成员点紧密地聚在一起并遵循共同的决策边界,因此,在一个数据集上训练的攻击模型可以有效地推断另一数据集中的点的成员资格状态。同时,图8b显示了两个数据集之间的转移攻击无效的结果。如图所示,对于成员和非成员数据点,没有清晰的群集。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6NLsDqTu-1615557548673)(https://i.loli.net/2021/03/11/1xiMUj73kVpAHNb.png)]

Towards model independent member ship inference attacks(Adversary3)

  • 不需要train任何影子模型, 也不需要假设模型或数据分布的知识。需要的是目标模型的输出后验概率, 以及数据点 x T a r g e t x_{Target} xTarget.无监督的二进制分类。具体而言,对手首先获得M(xTarget)。然后,她提取出最高的后验并比较此最大值是否超过某个阈值。如果答案是肯定的,那么她将预测目标模型的训练集中的数据点,反之亦然。因此,我们选择最大值,因为该特征遵循ML模型更可靠的理由,即,当面对经过训练的数据点时,一个后验比其他模型高得多。换句话说,成员数据点的最大后验比非成员数据点的后验高得多。

  • 阈值选择

    例如,如果她更专注于推理精度(召回率),那么她可以选择一个相对较高(较低)的阈值。尽管如此,我们提供了一种选择阈值的通用方法。具体来说,我们在目标数据点的特征空间中生成一个随机点样本。对于包含CIFAR-10,CIFAR-100,MNIST和Face的图像数据集,我们生成随机图像,其中每个像素的值均取自均匀分布。对于具有二元特征的数据集(包括“位置”和“购买”数据集),我们将根据无偏硬币抛掷为每个特征生成0和1。对于“成人”和“新闻”,由于特征的界限不清楚,因此我们的方法不适用。解决此问题的一种方法是从互联网上收集“新闻”文章或人们的记录(具有与“成人”数据集相同的功能)作为“随机”点。我们将其留作以后的工作。接下来,我们将这些随机点查询到目标模型以获得相应的最大后验。我们假设这些点充当非成员点。因此,这些随机点的最大后验概率的上百分位数可以作为一个很好的阈值。下面,我们从经验上显示存在百分位数的选择,该百分位数可以很好地工作并在所有数据集中推广,因此可用于自动确定检测阈值。

  • 实验细节

    将数据集分割两半, 一半来训练目标模型, 一半来作为非成员剔除, 首先在不设置阈值的情况下评估最大后验概率区分成员和非成员。使用AUC作为评估指标, 还使用标准偏差以及熵的后验概率定义为 − ∑ p i ∈ y p i l o g p i -\sum_{p_i \in y}p_i logp_i piypilogpi , p i p_i pi表示第i个类的概率

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V32Xd3nB-1615557548673)(https://i.loli.net/2021/03/11/TY3HqCROAvZo5Bi.png)]

  • 生成1000个随机数据点, 将t设置为10在大多数数据集都能取得不错的效果(这里的t是指前top t个后验概率)

    图11a进一步显示了CIFAR-100成员,非成员和随机点的最大后验分布。如图所示,我们的随机点的最大后验行为与非成员点的分布类似,这导致了强烈的成员推理。另一方面,我们的攻击在某些数据集上表现不佳,例如Purchase-10,其最大后验如图11b所示。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PxQRTJcA-1615557548674)(https://i.loli.net/2021/03/12/ZoYdC4QB9hyJVWE.png)]

    似乎没有找得到一个固定的阈值点去适应所有的数据集表现良好, 针对不同的数据集选择合适的阈值。

  • 防御策略

    • dropout

      到目前为止,我们已经使用0.5作为辍学率。我们进一步测试了改变我们的防守退出率的效果。在输入层和完全连接层上尝试不同的辍学率,同时监视第一个对手的表现和目标模型的准确性的结果。图17显示了Purchase-100数据集上的结果。我们首先观察到较高的dropout率导致较低的攻击性能。例如,两层的丢失率0.75会将攻击的性能降低到0.53的精度和召回率。另一方面,大和小的dropout率都导致目标模型的性能低下。这意味着在丢包率居中的情况下目标模型的精度最高。总之,对于这种防御技术,0.5丢包率是合适的选择。

    • Model Stacking

      如图18所示,要在某个数据点上获取模型的输出,我们首先在前两个模型中的每一个上应用x,以使其后代Y1和Y2。然后,我们将两个输出(即Y1 || Y2)连接起来,并将结果应用于预测最终输出Y的第三个模型

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4lT60adz-1615557548674)(https://i.loli.net/2021/03/12/2IiSuvcVmwCtYXa.png)]

Related work

  • 17年提出了针对机器学习模型的第一个成员推理攻击。这项工作的主要贡献是提出了阴影模型训练的建议,该模型旨在模仿目标模型的行为以生成攻击模型的训练数据。

  • 本论文中的第一个对手采用了非常相似的设置。我们已经证明,与17年提出的多个阴影模型和攻击模型相比,一个阴影模型和一个攻击模型足以实现有效的攻击。此外,我们证明了数据传输攻击可以绕过昂贵的综合数据生成方案并达到非常相似的性能。本文的另一个主要贡献是两种有效的防御机制,例如dropout和模型堆叠。从不同角度来看

    • Attacks Against Machine Learning

      除了隶属关系推断外,还存在针对ML模型的多种其他类型的攻击。弗雷德里克森(Fredrikson)等人。 [13]提出了生物医学数据设置中的模型反演攻击。在这种情况下,攻击者将依靠训练有素的机器学习模型的输出来推断受害者的缺失属性。后来,模型反演攻击被推广到更广泛的场景[12]。例如,作者表明,通过模型反转,攻击者可以重建受害者的可识别面孔是可行的。

      Tramer提出了另一种针对机器学习模型的攻击,即模型提取攻击。这种攻击旨在通过MLaaS API本身的输出来窃取ML模型(即模型的学习参数)。他们首先提出了一种解决方程式的攻击,攻击者多次查询MLaaS API,并使用输出后代来构建一组方程。通过求解这些方程,攻击者可以获得ML模型的权重。 Tramer等。 [43]进一步提出了一种寻路算法,这是第一种窃取决策树的实用方法。最后,Tramer等人。表明即使没有提供预测后验但只有预测类标签的ML模型仍然可以通过再培训策略(例如主动学习)被盗。值得注意的是,由于模型提取攻击的有效性,我们不认为将后代隐藏为一种有效的防御机制。

Conclusion

  • first adversary

    我们的第一个对手只使用了一个影子模型。大量实验表明,这种攻击的性能与上一个使用多影子模型的攻击非常相似。由于通过MLaaS建立了影子模型,因此我们的建议显着降低了进行攻击的成本。我们进一步执行组合攻击,该组合攻击不需要了解目标模型中使用的分类器的类型。

  • second adversary

    对于第二个对手,攻击假设更加宽松,因为他无法访问与目标模型的训练数据来自同一分布的数据集。这是一个更现实的攻击场景,但先前提出了综合数据生成解决方案只能在特定情况下应用。相反,我们提出了数据传输攻击,其中对手利用另一个数据集来构建影子模型,并生成相应的数据来攻击目标模型。通过实验,我们发现数据传输攻击在实现更广泛,更现实,更广泛应用的同时,还实现了强大的成员推理能力。

  • third adversary

    第三名对手的假设最少,即,她不需要构建任何影子模型,并且其攻击是在无人监督的情况下进行的。我们证明,即使在这样简单的环境中,隶属推理仍然有效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ML-Leaks Note 的相关文章

  • Linux使用Note

    这个文档正在维护完善中 1 释放Swap空间 依次执行如下命令即可 xff0c span class token function sync span span class token builtin class name echo spa
  • linux error note

    undefined reference to 96 wrong size cmpxchg 39 reason gcc 版本不兼容 xff0c 更换新版试试 在开发板和LINUX间用NFS挂载已成功 xff0c 但文件却看不到 xff1f r
  • Note for Understanding Neural Networks Through Deep Visualization

    Note for Understanding Neural Networks Through Deep Visualization Abstract 近年来 xff0c 在训练大型深度神经网络方面取得了巨大进展 xff0c 其中包括训练卷积
  • note: please ensure that VS 2013,VS 2015, VS 2017,VS 2019 or VS 2022 was instal1ed with the Visua1 C

    编译rust代码报错 报错信息 error 1inker link exe 96 not found 61 note program not found note the msvc targets depend on the msvc li
  • C,C++,C#note

    1 c 43 43 中的类的定义和声明可以都写在头文件中 xff0c 然后cpp文件include头文件 xff1b 也可以声明在头文件 xff0c 定义在cpp文件 xff1b 或者所有声明和定义都放在cpp文件 xff1b 混写定义与声
  • [深度学习]note for Machine Learning: An Algorithmic Perspective, Second Edition(Ch04-Ch06)【日常更新】

    Machine Learning An Algorithmic Perspective Second Edition Part 2 4 多层感知器4 1 前向4 1 1 偏置 4 2 后向 xff1a 误差的反向传播4 2 1 多层感知器算
  • (Note)深度学习与人工提取的特征

    首先 xff0c 深度学习一般 不需要人工提取特征 如果仅仅给网络提供人工提取的特征 xff0c 反而有可能会造成网络性能的下降 xff08 深度学习模型可能提取到一些人类不易察觉的特征 xff0c 这些特征可能对结果的判定有着较大的贡献
  • 静态测试 vs 动态测试

    静态测试 静态测试又可分为代码走查 Walkthrough 代码审查 Inspection 技术评审 Review 代码走查 Walkthrough 开发组内部进行的 采用讲解 讨论和模拟运行的方式进行的查找错误的活动 代码审查 Inspe
  • linux-docker

    unix liunx windows linux 文件系统 所有的资源都是目录在 root 根目录下 一 指令 ip addr ifconfig cd ls vim sudo 管理员身份 代表换行输入 pwd 查看所在目录 sudo sys
  • [非卷积5D] NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis

    不使用3D建模 使用静态图片进行训练 用 非卷积 深度网络表示场景的5D连续体表示 再通过ray marching进行渲染 paper NeRF Representing Scenes as Neural Radiance Fields f
  • python 单例

    1 使用模块 from AA import a 2 使用 new 在Python中 可以通过重写类的 new 方法来实现单例模式 单例模式是一种设计模式 它保证一个类只有一个实例 并提供一个全局访问点 class Singleton obj
  • Spring_Accepting request input

    Spring MVC provides several ways that a client can pass data into a controller s handler method These include 1 Query pa
  • python_error

    inspection info This inspection detects code which can not be normally reached 检验信息 本次检验检测到正常情况下无法达到的代码 inspection info
  • nn.Sequential和nn.Module区别与选择

    一 nn Sequential torch nn Sequential是一个Sequential容器 模块将按照构造函数中传递的顺序添加到模块中 另外 也可以传入一个有序模块 为了更容易理解 官方给出了一些案例 Sequential使用实例
  • 「转」plt.legend()简明使用教程

    原文链接https blog csdn net helunqu2017 article details 78641290 感谢作者辛勤付出 仅作笔记使用 侵删 1 图例legend基础语法及用法 legend语法参数如下 matplotli
  • Java springboot自定义bean加载控制顺序在flyway执行后

    在springboot中 我们经常需要在系统启动时执行一些自定义逻辑 例如将数据库中的值读取给bean使用等等 一般采用自定义bean的初始化流程方式实现 方式有许多种 但假如这个bean要被其他模块使用时保证已经被初始化过 就不能简单的采
  • Spring DataBinding

    1 用 ModelAttribute注释方法 1 1 ModelAttribute和 RequestMapping同时注释一个方法 span style font size 14px RequestMapping method Reques
  • Using LocalDB with Full IIS

    使用了LocalDB的ASP NET程序在部署到IIS时会报错 修改步骤如下 1 setProfileEnvironment需设置为true This requires editing applicationHost config file
  • 「学习笔记」torchvision.datasets.MNIST 参数解读/中文使用手册

    DataLoader使用手册 参数解读 PyTorch torch utils data DataLoader 中文使用手册 官方手册如下 torchvision datasets MNIST root train True transfo
  • tf1.x和tf2.x查看TFRecord数据的方法

    Tensorflow 1 x和Tensorflow 2 x读取tfrecord方法略有不同 下面分别记录两段代码 Tensorflow 1 x for example in tf python io tf record iterator p

随机推荐

  • 利用JS-SDK微信分享接口调用(后端.NET)

    一直都想研究一下JS SDK微信分享的接口调用 xff0c 由于最近工作需要 xff0c 研究了一下 xff0c 目前只是实现了部分接口的调用 xff1b 其他接口调用也是类似的 xff1b 在开发之前 xff0c 需要提前准备一个微信公众
  • Linux文件查找find

    1 find查找概述 为什么要有文件查找 xff0c 因为很多时候我们可能会忘了某个文件所在的位置 xff0c 此时就需要通过find来查找 find命令可以根据不同的条件来进行查找文件 xff0c 例如 xff1a 文件名称 文件大小 文
  • Linux文件打包与压缩

    1 文件打包与压缩 1 什么是文件压缩 将多个文件或目录合并成为一个特殊的文件 比如 搬家 脑补画面 img 2 为什么要对文件进行压缩 xff1f 当我们在传输大量的文件时 xff0c 通常都会选择将该文件进行压缩 xff0c 然后在进行
  • 集中式版本管理SVN与分布式版本管理Git的区别

    集中式版本控制系统SVN CVS 先说集中式版本控制系统 xff0c 版本库是集中存放在中央服务器的 xff0c 而大家工作的时候 xff0c 用的都是自己的电脑 xff0c 所以要先从中央服务器取得最新的版本 xff0c 然后开始工作 x
  • chatgpt Linux 定时任务 清理rancher pod启动服务的日志文件 脚本

    Linux 定时任务执行命令 假设我们想要每隔X分钟 每隔X天 每天X点执行一个脚本文件 xff0c 可以使用 Linux 自带的 cron 工具来创建定时任务 清理步骤 您可以使用 Linux 自带的 cron 工具来创建定时任务 xff
  • Http协议的几种常见状态码

    在开发好了网站后 xff0c 用户通过URL对资源进行操作 xff0c 服务器端要告诉用户交互的结果 xff0c 比如新增资源是成功还是失败了 一个较好的办法就是遵循HTTP协议 xff0c 使用请求响应的HTTP状态码 xff08 Sta
  • 推荐画UML图以及流程图的在线网站Site

    记得当年学UML课程的时候 xff0c 当你还在为了安装Rose而发愁的时候 xff0c 人家都把作业给交了 xff0c 并且现在大多数UML课程都会让学生使用Rational Rose做画图练习 近来 xff0c 做毕业设计需要提供各种流
  • 浙大PTA平台上的题目题解

    记载一些题目的代码 xff0c 之后想要在b站讲题目 xff0c 到时候会把录的视频上传b站 不是大佬 xff0c 是蒟蒻 xff0c 大佬勿喷 xff0c 仅供参考 xff0c 欢迎大家star xff0c qwq 浙大版 C语言程序设计
  • git 入门教程

    想要将一个项目托管到github xff0c 需要进入项目所在文件夹进行git init命令初始化 Git提交代码的基本流程 xff1a 创建或修改 本地文件使用 git add 命令 xff0c 将创建或修改的文件添加到本地的暂存区 xf
  • 博客搬家

    谢谢大家对我的blog的支持 现在本科毕业 xff0c 准备读研 方向大概是机器学习这一块 又是一个新的开始 我想将我读研学习Python以及机器学习 深度学习 以及数据分析处理 大数据等学习教程放在新的blog上 xff1a blog 欢
  • Python多线程笔记(Python_MultiThread)

    4 MultiThreading 多线程 使用 xff1a a 什么是多线程 xff1f 简单明了 xff0c 让计算机在同一时间内同时运行多个程序 xff0c 并且每个程序的计算互不干扰 xff0c 我们称这样的操作为多线程运算 b ad
  • Python多进程笔记(Python_MultiProcess)

    1 MutiProcessing 多进程 使用 xff1a a 什么是多进程 xff1f 在上面我们使用多线程去分别处理不同的事情 xff0c 看起来 xff0c 多线程处理并不比单线程循环处理的效率看起来那么的高 多进程是在利用我们电脑C
  • Python自带的GUI(Tkinter)教程

    1 Python Tkinter xff08 GUI图形界面 xff09 xff1a a What s Tkinter Tkinter 是什么 xff1f Tkinter是Python自带的一个GUI库 xff0c 他可以将我们在comma
  • Python科学计算包NumPy教程

    在我的Github上有一份代码与教程结合的jupyter Notebook文件 xff0c 大家可以clone下来看一看 下面会用实例的方式给出一些examples xff1a Tutorial教程 官方中文文档 span class to
  • 区块链入门的几个概念

    区块链入门的几个简单概念 1 What s Block Chain 区块链是一门软件技术 xff0c 从本质上来看就像是一个分布式的DataBase xff0c 是一个去中心化 xff0c 分布式技术 由于是分布式的 xff0c 所以区块链
  • Mysql GROUP_CONCAT与CONCAT_WS配合使用单选、多选拼接

    举例1 可以使用IF函数将单选和多选的值分别拼接 xff0c 并在最后的结果中使用CONCAT WS函数将它们合并 xff1a idcolors11223344 551 2 362 3 4 5 我们想要的结果为1 2 3 4 5 下面开始测
  • A Survey on Concept Drift Adaptation Note

    A Survey on Concept Drift Adaptation Abstract Concept drift primarily refers to an online supervised learning scenario w
  • Learning under Concept Drift:A Review

    Learning under Concept Drift A Review Abstract Concept drift describes unforeseeable changes in the underlying distribut
  • Note for Understanding Neural Networks Through Deep Visualization

    Note for Understanding Neural Networks Through Deep Visualization Abstract 近年来 xff0c 在训练大型深度神经网络方面取得了巨大进展 xff0c 其中包括训练卷积
  • ML-Leaks Note

    ML Leaks Model and Data IndependentMembership Inference Attacks and Defenses onMachine Learning Models xff08 机器学习模型上与模型和