【深度学习】【Image Inpainting】Free-Form Image Inpainting with Gated Convolution

模型:DeepFillv2 (CVPR’2019)
论文:https://arxiv.org/abs/1806.03589
代码:https://github.com/JiahuiYu/generative_inpainting

文章目录

  • 效果
  • Abstract
  • Introduction
  • Related Work
    • Automatic Image Inpainting
    • Guided Image Inpainting and Synthesis
    • Feature-wise Gating
  • Approach
    • Gated Convolution
    • Spectral-Normalized Markovian Discriminator (SN-PatchGAN)
    • Inpainting Network Architecture
    • Free-Form Mask Generation
    • Extension to User-Guided Image Inpainting
  • Results
    • 模型速度
    • Quantitative Results
    • Qualitative Comparisons
    • Object Removal and Creative Editing
      • object removal
      • creative editing
    • User Study
    • Ablation Study
  • Conclusions

论文摘录

效果

在这里插入图片描述

Abstract

提出了一种生成式图像绘制系统,利用free-form mask and guidance完成图像。该系统基于从数百万张图像中学习的gated convolutions,而无需额外的标记工作。所提出的门控卷积解决了vanilla convolution (原始普通的神经网络)将所有输入像素视为有效像素的问题,通过为所有层的每个空间位置的每个通道提供可学习的动态特征选择机制来推广部分卷积。此外,由于free-form masks 可能出现在任何形状的图像中的任何位置,因此为单个矩形蒙版设计的全局和局部gan不适用。因此,我们还提出了一种 patch-based GAN loss,称为SNPatchGAN,通过在密集图像补丁上应用频谱归一化鉴别器(spectral-normalized discriminator)。SN-PatchGAN公式简单,训练快速稳定。在自动图像绘制和用户引导扩展方面的实验结果表明,该系统比以前的方法生成的结果质量更高,更灵活。我们的系统可以帮助用户快速删除分散注意力的对象,修改图像布局,清除水印和编辑面孔。

Introduction

Image inpainting (又称 image completion or image hole-filling)是将缺失区域的替代内容综合起来,使修改在视觉上真实、语义上正确的任务。它允许删除分散注意力的物体或修饰照片中不需要的区域。它也可以扩展到任务,包括图像/视频的裁剪,旋转,拼接,重新定位,重新合成,压缩,超分辨率,协调和许多其他。

在计算机视觉中,存在两种广泛的图像绘制方法:使用低级图像特征的补丁匹配和使用深度卷积网络的前馈生成模型。前一种方法[3,8,9]可以合成合理的静止纹理,但在复杂场景、人脸和物体等非静止情况下通常会出现严重失败。后一种方法[15,49,45,46,38,37,48,26,52,33,35,19]可以利用从大规模数据集中学习的语义,以端到端方式合成非平稳图像中的内容。
然而,基于vanilla conv的深度生成模型自然不适合于图像填充,因为空间共享卷积滤波器将所有输入像素或特征视为相同的有效像素或特征。对于填充孔,每层的输入由孔外的有效像素/特征和掩膜区域的无效像素/特征组成。vanilla conv对所有有效的、无效的和混合的(例如,孔边界上的)像素/特征应用相同的过滤器,导致在自由格式掩模上测试时,孔周围的颜色差异、模糊和明显的边缘响应等视觉伪影[15,49]。

在这里插入图片描述

在这里插入图片描述

为了解决这一限制,最近提出了partial convolution[23],其中卷积被masked and normalized 为仅以有效像素为条件。然后是一个基于规则的mask-update step来更新下一层的有效位置。Partial convolution将所有输入位置分类为无效或有效,并对所有层的输入乘以0或1掩码。掩码也可以看作是单个不可学习的特征门控通道1。然而,这种假设有一些局限性。

首先,考虑网络的不同层上的输入空间位置,它们可以包括(1)输入图像中的有效像素,(2)输入图像的掩蔽像素,(3)感受野不覆盖输入图像的有效像素的神经元,(4)感受野覆盖输入图像的不同数量的有效像素的神经元(这些有效图像像素也可能具有不同的相对位置),以及(5)深层中的合成像素。启发式地将所有位置分类为无效或有效会忽略这些重要信息。其次,如果我们扩展到用户引导的图像修复,用户在掩模内提供稀疏草图,这些像素位置应该被视为有效还是无效?如何正确更新下一层的遮罩?第三,对于部分卷积,“无效”像素将逐层逐渐消失,基于规则的掩码将是深层中的所有掩码。然而,为了合成空穴中的像素,这些深层可能还需要当前位置是在空穴内部还是外部的信息。具有全一掩码的部分卷积不能提供这样的信息。我们将表明,如果我们允许网络自动学习掩码,则掩码可能具有不同的值,这取决于输入图像中的当前位置是否被掩码,即使在深层中也是如此。

在这里插入图片描述

我们提出了用于free-form image inpainting的门控卷积。它学习每个通道和每个空间位置(例如,内部或外部遮罩、RGB通道或用户指导通道)的动态特征门控机制。

在这里插入图片描述
在不影响性能的情况下,我们还将训练目标简化为两个术语:逐像素重建损失和对抗性损失(a pixelwise reconstruction loss and an adversarial loss)。
在这里插入图片描述
对于实用的图像修复工具来说,启用用户交互至关重要,因为可能存在许多看似合理的解决方案来填补图像中的漏洞。为此,我们提供了一个扩展,允许用户将草图作为引导输入。表1总结了与其他方法的比较。我们的主要贡献如下:(1)我们引入门控卷积,为所有层中每个空间位置的每个通道学习动态特征选择机制,显著提高了自由形式掩模和输入的颜色一致性和修复质量。(2) 我们提出了一种更实用的基于补丁的GAN鉴别器SN-PatchGAN,用于自由形式的图像修复。它简单、快速,并产生高质量的修复结果。(3) 我们将我们的修复模型扩展到交互式模型,使用户能够以草图为指导来获得更多用户想要的修复结果。(4) 我们提出的修复系统在包括Places2自然场景和CelebA HQ人脸在内的基准数据集上实现了比先前技术状态更高质量的自由形式修复。我们展示了所提出的系统可以帮助用户快速去除分散注意力的物体,修改图像布局,清除水印和编辑图像中的人脸。

在这里插入图片描述

Related Work

Automatic Image Inpainting

已经提出了多种用于图像修复的方法。传统上,基于补丁的[8,9]算法基于低级特征(例如,RGB空间上的均方差分特征)逐渐扩展接近孔洞边界的像素,以搜索和粘贴最相似的图像补丁。这些算法在静止纹理区域上运行良好,但在非平稳图像上经常失败。此外,Simakov等人提出了双向相似性综合方法[36],以更好地捕捉和总结非平稳视觉数据。为了降低搜索过程中的高内存和计算成本,提出了基于树的内存加速结构[25]和随机算法[3]。此外,通过匹配局部特征,如图像梯度[2,5]和相似补丁的偏移统计[11],可以改善修复结果。最近,提出了基于深度学习的图像修复系统来直接预测掩模内的像素值。这是一个显著的优势。Yu等人[49]通过采用堆叠生成网络,提出了一种端到端的图像修复模型,以进一步确保生成区域与周围环境的颜色和纹理一致性。此外,为了捕捉长程空间依赖性,提出了上下文注意力模块[49],并将其集成到网络中,以明确地从遥远的空间位置借用信息。然而,这种方法主要在大型矩形掩模上训练,而在自由形式掩模上不能很好地推广。为了更好地处理不规则掩码,提出了部分卷积[23],其中卷积被掩码并重新归一化以仅利用有效像素。是基于规则的掩模更新步骤,以逐层重新计算新的掩模。

Guided Image Inpainting and Synthesis

为了改进图像修复,探索了user guidance,包括点或线[1,3,7,40]、结构[13]、变换或失真信息[14,30]和图像示例[4,10,20,43,51]。值得注意的是,Hays和Efros[10]首先利用数百万张照片作为数据库来搜索与输入最相似的示例图像,然后通过从匹配的图像中剪切和粘贴相应的区域来完成图像。

条件生成网络的最新进展使用户能够从大规模数据集中学习图像处理、合成和操作。在这里,我们选择性地回顾了几项相关工作。张等人[50]提出了可以将用户指导作为额外输入的彩色化网络。王等人[42]提出使用条件生成对抗性网络从语义标签图合成高分辨率照片真实感图像。Scribbler[34]探索了一个基于草图边界和稀疏颜色笔划的深层生成网络,以合成汽车、卧室或人脸。

Feature-wise Gating

Feature-wise Gating在视觉[12,28,39,41]、语言[6]、语音[27]和许多其他任务中得到了广泛的探索。例如,Highway Networks[39]利用特征门控来简化非常深度网络的基于梯度的训练。挤压和激励网络通过将每个通道与学习的S形门控值显式相乘来重新校准特征响应。WaveNets[27]通过采用特殊特征门控y=tanh(w1x)·sigmoid(w2x)对音频信号进行建模,获得了更好的结果。

Approach

在本节中,我们将自下而上地介绍我们的方法。我们首先介绍了门控卷积SN PatchGAN的细节,然后在图3中介绍了修复网络的概述以及我们的扩展,以允许可选的用户指导。

Gated Convolution

vanilla convolutions 在free-form image inpainting 中不适用,所以才提出了partial convolution。
我们首先解释了为什么[15,49]中使用的香草卷积不适合自由形式的图像修复任务。我们考虑一个卷积层,其中一组滤波器被应用于输入特征图作为输出。假设输入是C−通道,位于C 0-通道输出图中(y,x)处的每个像素计算为
在这里插入图片描述
在这里插入图片描述

Partial convolution[23]提高了不规则掩模的补图质量,但仍存在以下问题:(1)启发式地对所有空间位置进行有效或无效的分类。下一层的遮罩将被设置为1,无论前一层的过滤范围覆盖了多少像素(例如,1个有效像素和9个有效像素被视为相同以更新当前遮罩)。(2)与附加用户输入不兼容。我们的目标是一个用户引导的图像绘制系统,在这个系统中,用户可以选择在遮罩内提供稀疏的草图作为条件通道。在这种情况下,这些像素位置是有效的还是无效的?如何正确更新下一层的蒙版?(3)对于部分卷积,无效像素将在深层逐渐消失,逐渐将所有掩码值转换为1。然而,我们的研究表明,如果我们允许网络自动学习最优掩码,即使在深层中,网络也会为每个空间位置分配软掩码值。(4)每一层的所有通道共用同一个掩码,限制了灵活性。从本质上讲,部分卷积可以看作是不可学习的单通道特征硬门控。

我们提出了一种门控卷积图像补绘网络,如图2所示。不是硬mask,门控卷积从数据中自动学习软掩码。其公式为:
在这里插入图片描述
所提出的门控卷积学习每个通道和每个空间位置的动态特征选择机制。有趣的是,中间门值的可视化表明,它不仅可以根据背景,掩码,草图学习选择特征,而且还可以考虑某些通道的语义分割。即使在较深的图层中,门控卷积也学习在单独的通道中突出显示遮罩区域和草图信息,以更好地生成绘图结果。

在这里插入图片描述

Spectral-Normalized Markovian Discriminator (SN-PatchGAN)

对于之前尝试填充单个矩形孔的补图网络,在被遮挡的矩形区域上使用额外的局部GAN来改善结果[15,49]。

然而,我们考虑的任务是自由形式的图像绘制,其中在任何位置可能有多个任意形状的孔。受全局和局部GAN[15]、MarkovianGANs[16,21]、感知损失[17]和最近对频谱归一化GAN[24]的研究的启发,我们提出了一种简单有效的GAN损失算法,即n - patchgan,用于训练自由形式的图像。鉴别器采用卷积网络,输入由图像、掩模和引导通道组成,输出为形状为R h×w×c的三维特征(h、w、c分别表示通道的高度、宽度和数量)。如图3所示,内核大小为5、步幅为2的6个跨步卷积被堆叠为捕获马尔可夫补丁的特征统计[21]。然后,我们直接对该特征图中的每个特征元素应用gan,针对输入图像的不同位置和不同语义(在不同通道中表示),形成h × w × c个数的gan。值得注意的是,在我们的训练设置中,输出映射中每个神经元的接受野可以覆盖整个输入图像,因此不需要全局鉴别器。

在这里插入图片描述
使用SN-PatchGAN,我们的inpainting网络训练速度比基线模型更快,更稳定[49]。不使用感知损失,因为在SN-PatchGAN中已经编码了类似的补丁级信息。与PartialConv[23]相比,其中6种不同的损失项和平衡项使用超参数时,我们的最终目标函数仅由逐像素的L1重建损失和SN-PatchGAN损失组成,默认损失平衡超参数为1:1。

Inpainting Network Architecture

我们使用所提出的门控卷积和SN-PatchGAN损失定制了一个生成式图像网络[49]。具体来说,我们采用了[49]中的完整模型架构,包括粗网络和精化网络。完整的框架如图3所示。

在这里插入图片描述
对于粗网络和精化网络,我们使用一个简单的编码器-解码器网络[49],而不是PartialConv[23]中使用的U-Net。我们发现UNet中的跳过连接[31]对非窄掩码没有显著影响。

这主要是因为对于掩蔽区域的中心,这些跳过连接的输入几乎为零,因此无法将详细的颜色或纹理信息传播到该区域的解码器。对于孔边界,我们的编解码器架构配备了门控卷积,足以产生无缝的结果。

我们用门控卷积代替所有的普通卷积[49]。一个潜在的问题是门控卷积引入其他参数。为了保持与基线模型相同的效率[49],我们将模型宽度缩小了25%,并且在数量和质量上都没有发现明显的性能下降。inpainting 网络是端到端训练的,可以在任意位置的自由孔上进行测试。我们的网络是完全卷积的,在推理中支持不同的输入分辨率。

Free-Form Mask Generation

自动生成自由格式掩码的算法非常重要。采样的掩码本质上应该(1)与实际用例中绘制的掩码相似,(2)多样化以避免过度拟合,(3)计算和存储效率高,(4)可控和灵活。先前的方法[23]从两个连续视频帧之间的遮挡估计方法中收集一组固定的不规则遮罩。虽然增加了随机扩张、轮作和种植来增加其多样性,但该方法不满足上述其他要求。

我们介绍了一种简单的算法,在训练过程中自动生成随机的自由格式蒙版。对于填充孔的任务,用户的行为就像使用橡皮擦来回刷,以掩盖不需要的区域。这种行为可以通过重复绘制线条和旋转角度的随机算法简单地模拟。为了保证两条线的平整度,我们还在两条线的连接处画了一个圆。由于篇幅限制,更多的细节在补充材料中。

Extension to User-Guided Image Inpainting

我们以草图为例,将我们的图像绘制网络扩展为一个用户引导系统。草图(或边缘)是简单和直观的用户绘制。我们用人脸和自然场景来展示这两种情况。对于人脸,我们提取地标并连接相关地标。对于自然场景图像,我们直接使用HED边缘检测器提取边缘地图[44],并将高于某一阈值(即0.6)的所有值设置为1。由于篇幅限制,在补充材料中给出了示例草图。

为了在绘画系统中训练用户引导的图像,直观地,我们需要额外的约束损失来强制网络生成以用户引导为条件的结果。然而,通过像素级重构损失和GAN损失的相同组合(将条件通道作为判别器的输入),我们能够学习条件生成网络,其中生成的结果忠实地尊重用户指导。我们还尝试在HED[44]输出特征上使用额外的像素级损失,将原始图像或生成的结果作为输入来执行约束,但绘制质量是相似的。使用5通道输入(R、G、B颜色通道、掩模通道和草图通道)单独训练用户引导的inpainting模型。

Results

模型速度

我们在Places2[53]和CelebA-HQ面部[18]上评估了所提出的自由形式图像绘制系统。我们的模型共有4.1万个参数,使用TensorFlow v1.8, CUDNN v7.0, CUDA v9.0进行训练。在测试中,它在单个NVIDIA® Tesla® V100 GPU上运行每张图像0.21秒,在Intel® Xeon® CPU @ 2.00GHz上运行每张图像平均1.9秒,分辨率为512 × 512,无论孔大小如何。

Quantitative Results

如文献[49]所述,图像补绘缺乏良好的定量评价指标。尽管如此,我们在表2中报告了我们对Places2验证图像的平均误差1和平均误差2的评估结果,其中包括中心矩形掩码和自由格式掩码。如表所示,基于学习的方法在平均“1”和“2”误差方面优于PatchMatch[3]。此外,在同一框架内实现的部分卷积得到较差的性能,这可能是由于不可学习的基于规则的门控。
在这里插入图片描述

Qualitative Comparisons

接下来,我们将我们的模型与之前最先进的方法[15,23,49]进行比较。图4和图5显示了带有几个代表性图像的自动和用户引导的绘图结果。对于自动图像绘制,PartialConv的结果是通过其在线演示得到的2。对于用户引导的图像绘制,我们使用与GatedConv完全相同的设置训练PartialConv*,除了卷积类型(草图区域被视为基于规则的掩码更新的有效像素)。对于所有基于学习的方法,都不执行后处理步骤以确保公平性。

在这里插入图片描述

据文献[15]报道,简单均匀区域(图4和图5的最后一行)是基于学习的图像在绘画网络中的难点。以前的普通卷积方法在孔内/周围有明显的视觉伪影和边缘响应。PartialConv产生更好的结果,但仍然表现出可观察到的颜色差异。

我们基于门控卷积的方法获得了更令人赏心悦目的视觉效果,并且没有明显的颜色不一致。

在图5中,给定稀疏的草图,我们的方法产生了具有无缝边界转换的逼真结果。

在这里插入图片描述
PS. 哈哈哈哈,很有意思,PConv论文的确说GL需要后处理,而DeepFillv1也没处理好,大佬这做出了DeepFillv2,直接说你PConv没做好,我这次是做好了。

Object Removal and Creative Editing

此外,我们研究了图像绘画的两个重要的实际用例:对象去除和创造性编辑(object removal and creative editing)。

object removal

在第一个示例中,我们试图移除图6中分散注意力的人。我们将我们的方法与商业产品Photoshop(基于PatchMatch[3])和之前最先进的生成绘画网络(在Places2上训练的官方发布模型)[49]进行了比较。结果表明,Photoshop的Content-Aware填充功能错误地从左边复制了一半的脸。这个例子反映了这样一个事实,即没有从大规模数据中学习的传统方法忽略了图像的语义,这导致在非平稳/复杂场景中出现严重故障。对于使用vanilla卷积的基于学习的方法[49],伪影存在于孔边界附近。

在这里插入图片描述

creative editing

接下来,我们将研究用户与绘图系统交互以产生更理想结果的情况。人脸和自然场景的示例如图7所示。我们的绘制结果很好地遵循用户草图。
在这里插入图片描述

User Study

我们进行了一项用户研究,首先从Places2验证数据集中收集了30张测试图像(有洞但没有草图),而不知道它们在每个模型上的涂漆结果。然后我们计算了以下四种方法的结果进行比较:(1)ground truth,(2)我们的模型,(3)在同一框架内重新实现的PartialConv[23],以及(4)官方的PartialConv[23]。我们做了两种类型的用户研究。(A)我们单独评估每种方法以评估结果的自然度/油漆质量(从1到10,越高越好),(B)我们比较我们的模型和官方的PartialConv模型,以评估哪种方法产生更好的结果。104名用户完成了用户研究,结果如下:

(A) Naturalness: (1) 9.89, (2) 7.72, (3) 7.07, (4) 6.54

(B) Pairwise comparison of (2) our model vs. (4) official PartialConv model: 79.4% vs. 20.6% (the higher the better).

Ablation Study

提出SN-PatchGAN的原因是自由格式蒙版可能出现在任何形状的图像中的任何位置。先前介绍的针对单个矩形掩模设计的全局gan和局部gan[15]不适用。我们在图8中提供了SN-PatchGAN在图像修复背景下的消融实验。SN-PatchGAN的结果明显更好,这验证了(1)单一全局鉴别器的性能较差[15],(2)谱归一化的GAN具有更好的稳定性和性能[24]。虽然引入更多的损失函数可能有助于训练自由形式的图像补图网络[23],但我们证明了SN-PatchGAN损失和像素级L1损失的简单组合,默认损失平衡超参数为1:1,可以产生逼真的补图结果。在补充资料中给出了更多的比较实例。
在这里插入图片描述

Conclusions

我们提出了一种基于端到端门控卷积生成网络的新型自由形式图像绘制系统,该系统使用逐像素的L1损失和SN-PatchGAN进行训练。

我们证明了门控卷积显著改善了自由格式蒙版和用户指导输入的图像绘制结果。我们展示了用户草图作为示例指导,以帮助用户快速删除分散注意力的对象,修改图像布局,清除水印,编辑面部和交互式地创建照片中的新对象。定量结果、定性比较和用户研究证明了我们提出的自由形式图像绘制系统的优越性。

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

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

相关文章

第1章 获取数据库中的数据

CoreShop源程序是以数据库优先进行定义的,所以其本身不包含代码优先的定义,但本从更习惯于代码优先,所以为其定义了代码优先的定义。 1 CoreCms.Net.Model.Entities.SysRole using SqlSugar; using System.ComponentModel.DataAnnotations…

三十章:Segmenter:Transformer for Semantic Segmentation ——分割器:用于语义分割的Transformer

0.摘要 图像分割在单个图像块的级别上经常存在歧义,并需要上下文信息来达到标签一致性。在本文中,我们介绍了一种用于语义分割的Transformer模型- Segmenter。与基于卷积的方法相比,我们的方法允许在第一层和整个网络中对全局上下文进行建模。…

《PyTorch深度学习实践》

文章目录 1.线性模型2.梯度下降算法3.反向传播3.1原理3.2Tensor in PyTorch 4.用PyTorch实现线性模型 1.线性模型 2.梯度下降算法 # 梯度下降x_data [1.0,2.0,3.0] y_data [2.0,4.0,6.0]w 3.0def forward(x):return x*w# 损失函数 def cost(xs,ys):cost 0for x,y in zip(x…

基于 Flink SQL CDC 数据处理的终极武器

文章目录 一、传统的数据同步方案与 Flink SQL CDC 解决方案1.1 Flink SQL CDC 数据同步与原理解析1.2 基于日志的 CDC 方案介绍1.3 选择 Flink 作为 ETL 工具 二、 基于 Flink SQL CDC 的数据同步方案实践2.1 CDC Streaming ETL2.2 Flink-CDC实践之mysql案例 来源互联网多篇文…

华为OD机试真题 Java 实现【文件目录大小】【2023 B卷 100分】,附详细解题思路

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明4、再输入5、再输出6、说明 华为OD机试 2023B卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题…

spring-cloud-alibaba——nacos-server搭建

前言:组件版本关系,官方:组件版本关系 1,nacos-server搭建(windows环境),下载地址nacos 选择对应的版本,这里以目前最新版2.2.3为例子,下载后解压 单机模式 修改\nacos-server-2.2.3\nacos\bin\startup.c…

分布式调用与高并发处理 Nginx

一、初识Nginx 1.1 Nginx概述 Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。Nginx 专为性能优化而开发,使用异步非阻塞事件驱动模型。 常见服务…

(2)前端控制器的扩展配置, 视图解析器类型以及MVC执行流程的概述

SpringMVC入门程序的扩展说明 注册前端控制器的细节 在web.xml文件注册SpringMVC的前端控制器DispatcherServlet时使用url-pattern标签中使用/和/*的区别 /可以匹配.html或.js或.css等方式的请求路径,但不匹配*.jsp的请求路径/*可以匹配所有请求(包括.jsp请求), 例如在过滤器…

【Linux Shell】基础知识

Linux Shell基础知识 一、Linux Shell基础概念1.1 Shell定义1.2 命令行提示符 二、初识Shell2.1 Shell定义2.2 登录Shell相关文件2.3 Shell中的变量变量类型变量的引用单引号\ 与双引号\" \"变量的删除与检查 2.4 Shell中的扩展大括号扩展{ }其他扩展 一、Linux Shel…

使用springboot进行后端开发100问

properties和yaml文件怎么互转 安装插件 properties文件和yaml文件区别 properties 文件通过“.”和“”赋值,值前不加空格,yaml通过“:”赋值,值前面加一个空格;yaml文件缩进用空格; properties只支持键值对&#x…

flash attention 2论文学习

flash attention作者Tri Dao发布了flash attention 2,性能为flash attention的2倍。 优化点主要如下: 一、减少 non-matmul FLOPs A00中由于tensor core的存在,使得gpu对于浮点矩阵运算吞吐很高,如FP16/BF16可以达到312 TFLOPs/…

LINUX中的myaql(一)安装

目录 前言 一、概述 二、数据库类型 三、数据库模型 四、MYSQL的安装 (一)yum安装MYSQL (二)rpm安装MYSQL 五、MYSQL本地登录 rpm安装MYSQL本地登录 六、重置密码 总结 前言 MySQL是一种常用的开源关系型数据库管理系统&#xff…

蛋白质分子结构设计

paper read 1 Created by: 银晗 张 Created time: May 27, 2023 3:47 PM Tags: Product 补充了解蛋白质的生物学知识学习一下Diffusion的原理 💡 Method & Innovations Framework Summary: first deep learning models to perform antibody sequence-stru…

banner轮播图实现、激活状态显示和分类列表渲染、解决路由缓存问题、使用逻辑函数拆分业务(一级分类)【Vue3】

一级分类 - banner轮播图实现 分类轮播图实现 分类轮播图和首页轮播图的区别只有一个,接口参数不同,其余逻辑完成一致 适配接口 export function getBannerAPI (params {}) {// 默认为1 商品为2const { distributionSite 1 } paramsreturn httpIn…

pearcmd.php文件包含妙用

文章目录 pearcmd.php文件包含妙用利用条件原理利用config-createinstalldownload pearcmd关键词被ban参考 pearcmd.php文件包含妙用 利用条件 php.ini中register_argc_argvOn开启安装pecl/pear pecl是PHP中用于管理扩展而使用的命令行工具,而pear是pecl依赖的类…

从新手到专业人士:探索 C++ STL 以获得终极性能

探索 C STL 以获得终极性能 博主简介一、引言二、C STL 简介2.1、STL 是什么?2.2、STL 中的常用组件2.3、STL 的优点 三、入门指南:了解基本概念和用法3.1、容器:vector、list、deque、set、map 等3.2、算法:查找、排序、遍历等3.…

Javascript程序异常处理

什么是异常,异常就是我们在编写Javascript程序时出现的一些错误,并会在控制台中抛出这个错误,出现异常其实并不是一件坏事,相对的呢它可以提醒我们开发人员哪里出现了错误,方便我们后续的修改,能让我们的代…

OSI 和 TCP/IP 网络分层模型详解(基础)

OSI模型: 即开放式通信系统互联参考模型(Open System Interconnection Reference Model),是国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互连为网络的标准框架,简称OSI。 OSI 七层模型 OS…

centos逻辑分区磁盘扩展

最近碰到服务器磁盘空间不足,需要扩展逻辑分区的需求,特地做下小笔记,方便后续自己回忆。下图是磁盘的相关概念示意图: 1、查看磁盘空间 [rootlocalhost ~]# df -h #查看磁盘空间,根分区的大小是18G,已经用…

RISCV -3 RV32I/RV64I基本整型指令集

RISCV -3 RV32I/RV64I基本整型指令集 1 RV32I Base Integer Instruction Set1.1 Programmers’ Model for Base Integer ISA1.2 Base Instruction Formats1.3 Immediate Encoding Variants1.4 Integer Computational Instructions1.4.1 Integer Register-Immediate Instruction…