当前位置: 首页 > news >正文

灵活视图变换器:为扩散模型设计的革新图像生成架构

在自然界中,图像的分辨率是无限的,而现有的图像生成模型在跨任意分辨率泛化方面存在困难。虽然扩散变换器(DiT)在特定分辨率范围内表现出色,但在处理不同分辨率的图像时却力不从心。为了克服这一限制,来自上海人工智能实验室的研究团队及其合作者提出了灵活视图变换器(Flexible Vision Transformer,简称FiT),这是一种专为生成任意分辨率和纵横比的图像而设计的变换器架构。与传统方法不同,FiT将图像视为动态大小的令牌序列,这种视角使得FiT在训练和推理阶段都能灵活适应不同的纵横比,从而促进分辨率的泛化,并消除了由图像裁剪引入的偏见。

FiT-XL/2模型在不同分辨率下生成的图像样本

方法

论文首先介绍了一些关键的预备概念和技术,特别强调了1-D Rotary Positional Embedding(1-D旋转位置嵌入,简称RoPE)的概念。RoPE是一种新颖的位置编码方式,它通过将绝对位置编码和相对位置编码结合在一起,为大型语言模型(LLMs)提供了一定程度的序列长度外推能力。

RoPE通过在复数向量空间中对关键向量和查询向量应用偏置,实现了位置编码。这种方法利用了一个旋转频率矩阵,该矩阵定义了一系列的旋转角度,这些角度与位置编码的维度有关。在实际空间中,这种旋转矩阵可以被看作是一个由余弦和正弦函数组成的矩阵,它能够根据位置信息调整关键向量和查询向量。

其次注意力分数的计算方式也很重要,即如何结合使用RoPE的查询向量和关键向量来得到注意力分数。这涉及到利用RoPE编码后的查询向量和关键向量之间的复数实部内积,以确定模型在不同位置编码下的注意力权重。

最后是NTK-aware Interpolation(NTK感知插值)和YaRN(Yet another RoPE extensioN,另一种RoPE扩展)插值技术。这些技术主要用于处理大型语言模型在面对测试时上下文长度超过训练时最大长度的情况。通过调整RoPE的旋转基,NTK-aware Interpolation能够适应更长的上下文。而YaRN技术则引入了一个额外的超参数来调整旋转频率,从而更有效地扩展上下文窗口。

为了处理不同分辨率的图像,FiT采用了一个灵活的预处理步骤。与传统的将所有图像调整到固定分辨率的方法不同,FiT在预处理阶段避免了裁剪或过度缩放图像。FiT仅将高分辨率图像调整到一个预设的最大分辨率限制,确保图像的原始纵横比不变,从而避免了引入不必要的失真或信息损失。

接下来,FiT的训练流程包括将图像编码为潜在代码,然后将这些潜在代码分割成固定大小的潜在令牌。由于不同图像的潜在令牌序列长度可能不同,FiT通过填充令牌将所有序列统一到一个最大长度,这样就可以将不同长度的序列打包到同一个批次中进行并行处理。在训练过程中,模型只计算去噪输出令牌的损失,而忽略填充令牌。

在推理阶段,FiT首先根据目标图像的分辨率定义一个位置图,然后从高斯分布中采样噪声令牌作为输入。通过一系列的去噪步骤,模型逐步改善这些噪声令牌,最终根据位置图将去噪后的令牌重塑并解码成最终的图像。

FiT的训练和推理流程还特别考虑了GPU硬件的特性,确保数据以统一形状的批次进行处理,以优化并行计算效率。这种灵活的训练和推理流程使得FiT能够生成各种分辨率和纵横比的高质量图像,同时保持了图像的细节和完整性。

为了评估FiT生成的图像质量,研究者们采用了多种评估指标,如Frechet Inception Distance(FID)、Inception Score(IS)、以及改进的精确度和召回率等。这些指标能够全面评估生成图像的质量和多样性,确保FiT在不同分辨率下都能产生高保真度的图像输出。通过这些评估,研究者们能够验证FiT在训练分布内外的分辨率上都具有出色的图像生成能力。

DiT和FiT在处理数据时的流程差异。(a)部分展示了DiT的流程,包括固定分辨率的处理方式;(b)部分展示了FiT的流程,突出了其灵活处理不同分辨率的能力

FiT模型视图:
(a) 灵活的训练流程,展示了如何将图像编码、分块、填充和计算损失。(b) 灵活的推理流程,展示了如何定义生成图像的位置、去噪和重塑。(c) FiT块,展示了模型的基本构成元素,包括2D位置嵌入、掩码多头自注意力(Masked MHSA)、SwiGLU等

FiT模型的架构基于DiT(Diffusion Transformer)进行了改进,特别是针对分辨率外推的局限性进行了优化。为了适应不同大小的图像,FiT采用了2D Rotary Positional Embedding(2D旋转位置嵌入,简称2D RoPE),这是从1D RoPE演变而来的技术,它通过在两个维度上分别应用旋转频率,增强了模型对空间位置信息的编码能力。

FiT模型中传统的多层感知器(MLP)被替换为Swish-Gated Linear Unit(SwiGLU),这是一种新型的激活函数,它结合了Sigmoid线性单元(SiLU)和Hadamard乘积,能够提供更有效的非线性变换,有助于提高模型的表达能力。

为了更有效地处理填充令牌,FiT使用了Masked Multi-Head Self-Attention(Masked MHSA)机制。这种机制通过掩码操作,区分了实际的令牌和填充令牌,确保在自注意力计算过程中,只有实际的令牌之间进行交互,而忽略填充令牌,从而避免了不必要的计算和潜在的错误信息传播。

FiT模型还引入了一种灵活的训练策略,允许模型在训练过程中动态调整序列长度,以适应不同分辨率的图像。这种策略通过将图像编码为不同长度的潜在令牌序列,并使用填充操作将它们统一到最大序列长度,使得模型能够处理任意长度的输入。

FiT模型的设计还包括了对网络架构的细致调整,如层数、隐藏尺寸和注意力头数的配置,以及对训练过程中的正则化和优化策略的选择。这些细节共同构成了FiT模型的核心,使其能够在保持高效率的同时,生成高质量的图像。

FiT模型在设计时考虑到了在不同分辨率下生成图像的能力,特别是在训练数据中未出现的分辨率。为了实现这一点,研究者们采用了一种无需额外训练的方法来扩展模型的分辨率适应性。

FiT模型在训练期间能够处理各种分辨率和纵横比的图像,但为了在推理时生成更高或更低分辨率的图像,需要一种有效的外推技术。论文提出了几种不同的外推方法,包括但不限于:

  • Vanilla NTK和YaRN实现:直接将大型语言模型中的外推技术应用于2D RoPE,通过调整旋转基来适应不同的分辨率。
  • VisionNTK和VisionYaRN:这是两种针对视觉任务改进的外推方法,它们利用了2D RoPE的解耦特性,分别对高度和宽度的旋转频率进行独立调整,以适应不同的纵横比。

这些方法通过修改模型的位置编码来适应新的分辨率,而不需要对模型权重进行任何调整或额外的训练。这样,FiT模型能够灵活地在不同的分辨率下生成图像,即使是在训练时未曾遇到的分辨率。

实验

研究者们遵循DiT-B和DiT-XL的设置,为基本模型FiT-B和xlarge模型FiT-XL设置了相同的层数、隐藏尺寸和注意力头数。研究者们采用了与DiT相同的预训练VAE编码器来编码和解码图像/潜在令牌。

研究者们通过一系列消融实验来检验和优化FiT模型的各个组成部分。这些实验包括对位置编码方式、前馈网络(FFN)中的激活函数,以及多头自注意力(MHSA)机制的调整。通过在特定的训练步骤后评估不同模型变体在多个分辨率上的性能,研究者们确定了哪些架构设计对于提升模型在不同分辨率图像生成任务上的表现最为关键。结果表明,引入2D旋转位置编码(2D RoPE)和SwiGLU激活函数,以及使用Masked MHSA代替传统的MHSA,能够有效提高模型对分辨率变化的适应性和生成图像的质量。

从DiT-B/2到FiT-B/2模型的消融研究结果

研究者们评估和改进了FiT模型在生成训练分布之外分辨率图像的能力。他们探索了多种分辨率外推技术,包括基于RoPE的插值方法,如NTK和YaRN,以及为FiT专门设计的VisionNTK和VisionYaRN方法。这些方法允许模型在不经过额外训练的情况下,有效地生成不同分辨率的图像,从而显著提高了模型的灵活性和应用范围。通过这些技术,FiT能够在保持图像质量的同时,处理更广泛的分辨率,包括那些在训练时未遇到的分辨率。

在分布外分辨率下,不同模型在ImageNet数据集上生成图像的性能比较。它包括了使用不同插值方法的FiT-B/2和DiT-B/2模型

研究者们训练了最高Gflops的模型FiT-XL/2,并在1.8M步数下进行了实验,以评估FiT在三种训练分布内的分辨率下的表现:256×256、160×320和128×384。他们将FiT与其他最先进的类条件生成模型进行了比较,包括BigGAN、StyleGAN-XL、MaskGIT、CDM、U-ViT、ADM、LDM、MDT和DiT。

实验结果表明,FiT-XL/2在所有评估的分辨率上都展现出了卓越的性能,超越了其他所有模型,特别是在160×320和128×384分辨率上,FiT-XL/2显著降低了FID得分,显示出其在生成高质量图像方面的显著优势。FiT-XL/2在256×256分辨率上尽管训练步数较少,但与其他经过更长时间训练的模型相比,仍显示出了竞争力。

在ImageNet数据集上,使用类条件图像生成模型在分布内和分布外分辨率生成图像的性能比较。表格中列出了不同模型在不同分辨率下的性能指标,如FID、sFID、IS、Precision和Recall

究者们评估了FiT-XL/2在三种训练分布外的分辨率下的表现:320×320、224×448和160×480,并与U-ViT、ADM、LDM-4、MDT和DiT等其他最先进的类条件生成模型进行了比较。他们发现FiT-XL/2在所有评估的分辨率和纵横比设置下都实现了最佳性能。

通过这些实验,研究者们展示了FiT模型在不同分辨率和纵横比下生成高质量图像的能力,证明了其在图像生成任务中的优越性和灵活性。

论文链接:https://arxiv.org/abs/2402.12376

相关文章:

灵活视图变换器:为扩散模型设计的革新图像生成架构

在自然界中,图像的分辨率是无限的,而现有的图像生成模型在跨任意分辨率泛化方面存在困难。虽然扩散变换器(DiT)在特定分辨率范围内表现出色,但在处理不同分辨率的图像时却力不从心。为了克服这一限制,来自上…...

[终端安全]-1 总体介绍

有朋友一直在和笔者研讨智驾安全这个热门话题,笔者十多年工作从不离终端安全这个核心话题(芯片安全、操作系统安全、应用安全),近来也一直在梳理终端安全体系;手机、汽车皆是我们生活中应用最普遍的智能终端&#xff0…...

Mysql5.7并发插入死锁问题

死锁的产生条件 互斥、请求和保持、不可剥夺、循环等待 MySQL锁类型 死锁复现 环境:Mysql 5.7版本,Innodb引擎,可重复度隔离级别 并发场景下使用duplicate key update插入或更新数据可能会造成死锁,下面就产生死锁的条件进行模…...

网络“ping不通”,如何排查和解决呢?

网络问题往往复杂且难以预测,其中“ping不通”是常见的网络故障之一。 1. 确认问题现象 首先,明确问题是完全无法ping通(无响应)还是ping通但有高延迟或丢包。这有助于缩小问题范围。 2. 本地检查 网络接口状态:使用ifconfig(Linux)或ipc…...

日常学习--20240706

1、udp协议的特点有哪些? a、无连接,发送和接收数据不需要建立连接,开销小,实时性好 b、不可靠传输,不保证数据包能够到达目的地,也不保证数据包的顺序 c、面向数据报的,以数据报形式发送数据…...

入门PHP就来我这(高级)12 ~ 获取数据

有胆量你就来跟着路老师卷起来! -- 纯干货,技术知识分享 路老师给大家分享PHP语言的知识了,旨在想让大家入门PHP,并深入了解PHP语言。 1 从结果集中获取一行作为对象 表中数据行如下: 利用mysqli_fetch_array()函数获…...

AIGC专栏12——EasyAnimateV3发布详解 支持图文生视频 最大支持960x960x144帧视频生成

AIGC专栏12——EasyAnimateV3发布详解 支持图&文生视频 最大支持960x960x144帧视频生成 学习前言项目特点生成效果相关地址汇总项目主页Huggingface体验地址Modelscope体验地址源码下载地址 EasyAnimate V3详解技术储备Diffusion Transformer (DiT)Hybrid Motion ModuleU-V…...

【python】python猫眼电影数据抓取分析可视化(源码+数据集+论文)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…...

Android 四大组件

1. Activity 应用程序中,一个Activity通常是一个单独的屏幕,它上面可以显示一些控件,也可以监听并对用户的事件做出响应。 Activity之间通过Intent进行通信,在Intent 的描述结构中,有两个最重要的部分:动…...

【Python】已解决:ModuleNotFoundError: No module named ‘nltk’

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决:ModuleNotFoundError: No module named ‘nltk’ 一、分析问题背景 在使用Python进行自然语言处理或文本分析时,我们经常会用到各种库来辅助我们的工…...

【Docker系列】Docker 命令行输出格式化指南

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

使用Netty构建高性能的网络应用

使用Netty构建高性能的网络应用 大家好,我是微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! Netty是一个基于Java NIO的异步事件驱动的网络应用框架,专为快速开发高性能、高可靠性的网络服务器和客户…...

C++11新特性【下】{lambda表达式、可变模板参数、包装器}

一、lambda表达式 在C98中,如果想要对一个数据集合中的元素进行排序,可以使用std::sort方法。如果待排序元素为自定义类型,需要用户定义排序时的比较规则,随着C语法的发展,人们开始觉得上面的写法太复杂了&#xff0c…...

SpringBoot使用手册

SpringBoot使用手册 1、自动装配 1.1、创建spring Boot项目 在之前的文章中已经专门写过,这里不做赘述。 1.2、pom.xml 1.2.1、版本管理 在学习完maven项目后,我们学习框架时首先阅读的就是pom.xml文件,这里是管理自己该项目中所用到的…...

HTML CSS 基础复习笔记 - 列表使用

用于自己复习 自定义列表 示例代码 <!DOCTYPE html> <html> <head><title>Definition List Example</title> </head> <body><h1>古诗</h1><dl><dt>静夜思</dt><dd>床前明月光&#xff0c;疑…...

017-GeoGebra基础篇-微积分函数求解圆弧面积问题

基础篇慢慢的走进尾声&#xff0c;今天给大家带来一个小项目&#xff0c;是关于高中数学微积分部分的展示&#xff0c;这个项目主要包含了函数的介绍、函数与图形绘制的区别、区域函数图像的绘制、积分函数的应用、动态文本的调用、嵌套滑动条的应用等等&#xff0c;以及其他常…...

Element中的选择器组件Select (一级选择组件el-select)

简述&#xff1a;在 Element UI 中&#xff0c;ElSelect&#xff08;或简称为 Select&#xff09;是一个非常常用的选择器组件&#xff0c;它提供了丰富的功能来帮助用户从一组预定义的选项中选择一个或多个值。这里来简单记录一下 一. 组件和属性配置 <el-selectv-model&q…...

数值分析笔记(五)线性方程组解法

三角分解法 A的杜利特分解公式如下&#xff1a; u 1 j a 1 j ( j 1 , 2 , ⋯ , n ) , l i 1 a i 1 / u 11 ( i 2 , 3 , ⋯ , n ) , u k j a k j − ∑ m 1 k − 1 l b m u m j ⇒ a k j ( j k , k 1 , ⋯ , n ) , l i k ( a i k − ∑ m 1 k − 1 l i n u m k ) /…...

IDEA中Maven的配置

目录 1. 安装maven 2. 配置环境变量 3. IDEA中配置Maven 4. 配置仓库目录 1. 安装maven 官网下载地址&#xff1a;Maven – Download Apache Maven 下载后&#xff0c;将zip压缩包解压到某个目录即可。 2. 配置环境变量 变量名称随意&#xff0c;通常为M2_HOME&#xff…...

成人高考本科何时报名-深职训学校帮您规划学习之路

你有想过继续深造自己的学历吗&#xff1f;也许你已经工作多年&#xff0c;但总觉得学历是一块心病&#xff0c;想要通过成人高考本科来提升自己。不用着急&#xff0c;今天我们来聊一聊成人高考本科的报名时间&#xff0c;以及深职训学校如何帮助你顺利完成报名。 深圳成人高…...

C++ STL 协程(Coroutines)

一:什么是协程(Coroutines): 协程是轻量级线程,可以暂停和恢复执行,协程拥有自己的暂停点状态,协程暂停时,将当前状态保存起来,在恢复执行时会恢复之前保存的状态。 二:例子: #include <coroutine> #include <iostream>void doTheWork() {std::cout <…...

虚拟机下基于海思移植QT(一)——虚拟机下安装QT

0.参考资料 1.海思Hi3516DV300 移植Qt 运行并在HDMI显示器上显示 2.搭建海思3559A-Qt4.8.7Openssl开发环境 1.报错解决 通过下面命令查询 strings /lib/x86_64-linux-gnu/libc.so.6 | grep GLIBC_通过命令行没有解决&#xff1a; sudo apt install libc6-dev libc6参考解决…...

计算机网络部分知识点整理

停止等待协议的窗口尺寸为 1。 √以太网标准是IEEE802.3TCP/IP四层&#xff0c;OSI模型有7层&#xff0c;地址解析协议 ARP 在 OSI 参考七层协议属于数据链路层&#xff0c;在TCP/IP 协议属于网络层&#xff0c;ARP作用&#xff1a;将 IP 地址映射到第二层地址&#xff0c;交换…...

【Qt】Qt概述

目录 一. 什么是Qt 二. Qt的优势 三. Qt的应用场景 四. Qt行业发展方向 一. 什么是Qt Qt是一个跨平台的C图形用户界面应用程序框架&#xff0c;为应用程序开发者提供了建立艺术级图形界面所需的所有功能。 Qt是完全面向对象的&#xff0c;很容易扩展&#xff0c;同时Qt为开发…...

读书笔记-《魔鬼经济学》

这是一本非常有意思的经济学启蒙书&#xff0c;作者探讨了许多问题&#xff0c;并通过数据找到答案。 我们先来看看作者眼中的“魔鬼经济学”是什么&#xff0c;再选一个贴近我们生活的例子进行阐述。 01 魔鬼经济学 中心思想&#xff1a;假如道德代表人类对世界运转方式的期…...

2024.7.7总结

今天是惊心动魄的一天&#xff0c;记录一下吧! 昨天晚上害怕早上闹铃响了听不到&#xff0c;担心有意外出现&#xff0c;错过回家的车票&#xff0c;于是便在晚上设置了3个闹铃&#xff0c;6:50&#xff0c;7:00&#xff0c;7:05然后也关了静音。没想到&#xff0c;早上按照正…...

uniapp做小程序内打开地图展示位置信息

使用场景&#xff1a;项目中需要通过位置信息打开地图查看当前位置信息在地图那个位置&#xff0c;每个酒店有自己的经纬度和详细地址&#xff0c;点击地图按钮打开内置地图如图 方法如下&#xff1a; <view class"dttu" click"openMap(info.locationY,info.…...

leetcode 283.移动零

leetcode 283.移动零 自己刷题并且进行记录一下 题解 c class Solution { public:void moveZeroes(vector<int>& nums) {int count 0;for (int i 0; i < nums.size(); i) {if(nums[i] ! 0) {nums[count] nums[i];if (count !i) {nums[i] 0;}count;}}} };...

Unity | Shader基础知识(第十七集:学习Stencil并做出透视效果)

目录 一、前言 二、了解unity预制的材质 三、什么是Stencil 四、UGUI如何使用Stencil&#xff08;无代码&#xff09; 1.Canvas中Image使用Stencil制作透视效果 2.学习Stencil 3.分析透视效果的需求 五、模型如何使用Stencil 1.shader准备 2.渲染顺序 3.Stencil代码语…...

【3D->2D转换(1)】LSS(提升,投放,捕捉)

Lift, Splat, Shoot 这是一个端到端架构&#xff0c;直接从任意数量的摄像头数据提取给定图像场景的鸟瞰图表示。将每个图像分别“提升&#xff08;lift&#xff09;”到每个摄像头的视锥&#xff08;frustum&#xff09;&#xff0c;然后将所有视锥“投放&#xff08;splat&a…...

MyBatis 框架核心及面试知识要点

1、什么是 MyBatis? MyBatis 是一款优秀的支持自定义 SQL 查询、存储过程和高级映射的持久层框架&#xff0c;消除了 几乎所有的 JDBC 代码和参数的手动设置以及结果集的检索 。 MyBatis 可以使用 XML,或注解进 行配置和映射&#xff0c;MyBatis 通过将参数映射到配置的 SOL,形…...

《linux系统内核设计与实现》-实现最简单的字符设备驱动

开发linux内核驱动需要以下4个步骤&#xff1a; 1 编写hello驱动代码 驱动代码如下 helloDev.c&#xff0c;这是一个最小、最简单的驱动&#xff0c;去掉了其他的不相干代码&#xff0c;尽量让大家能了解驱动本身。 #include <linux/module.h> #include <linux/mod…...

【MotionCap】pycharm 远程在wsl2 ubuntu20.04中root的miniconda3环境

pycharm wsl2 链接到pycharmsbin 都能看到内容,/root 下内容赋予了zhangbin 所有,pycharm还是看不到/root 下内容。sudo 安装了miniconda3 引发了这些问题 由于是在 root 用户安装的miniconda3 所以安装路径在/root/miniconda3 里 这导致了环境也是root用户的,会触发告警 WA…...

[BJDCTF 2nd]简单注入

sqlsqlsqlsqlsql又来喽 过滤了单双引号&#xff0c;等于符号&#xff0c;还有select等&#xff0c;但是这里没有二次注入 。扫描发现hint.txt 看出题人的意思是&#xff0c;得到密码即可获得flag。 select * from users where username$_POST["username"] and passw…...

java项目的一些功能(完善登录功能、注册接口参数校验、完善分页查询、完善日期格式、更新文章分类和添加文章分类的分组校验、自定义校验、文件上传 )

目录 完善登录功能 注册接口参数校验 完善分页查询 完善日期格式 更新文章分类和添加文章分类的分组校验 ​编辑 自定义校验 文件上传 完善登录功能 对前端传过来的明文密码进行md5加密处理 password DigestUtils.md5DigestAsHex(password.getBytes()); 这样既可 注…...

Mac安装AndroidStudio连接手机 客户端测试

参考文档&#xff1a;https://www.cnblogs.com/andy0816/p/17097760.html 环境依赖 需要java 1.8 java安装 略 下载Android Studio 地址 下载 Android Studio 和应用工具 - Android 开发者 | Android Developers 本机对应的包进行下载 安装过程 https://www.cnblogs.c…...

Git 完整的提交规范教程

约定式提交规范 本文中的关键词 “必须&#xff08;MUST&#xff09;”、“禁止&#xff08;MUST NOT&#xff09;”、“必要&#xff08;REQUIRED&#xff09;”、“应当&#xff08;SHALL&#xff09;”、“不应当&#xff08;SHALL NOT&#xff09;”、“应该&#xff08;S…...

【TB作品】51单片机 Proteus仿真 00001仿真实物PID电机调速系统

实验报告&#xff1a;Proteus 仿真 PID 电机调速系统 一、实验背景 PID&#xff08;比例-积分-微分&#xff09;控制器广泛应用于工业控制系统中&#xff0c;用于调节各种物理变量。本实验的目的是通过 Proteus 仿真软件设计并实现一个 PID 电机调速系统&#xff0c;以控制直…...

【LInux】从动态库的加载深入理解页表机制

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …...

IDEA与通义灵码的智能编程之旅

1 概述 本文主要介绍在IDEA中如何安装和使用通义灵码来助力软件编程,从而提高编程效率,创造更大的个人同企业价值。 2 安装通义灵码 2.1 打开IDEA插件市场 点击IDEA的设置按钮,下拉选择Plugins,如下: 2.2 搜索通义灵码 在搜索框中输入“通义灵码”,如下: 2.3 安…...

多表查询sql

概述&#xff1a;项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系&#xff0c;分为三种&#xff1a; 一对多多对多一对一 一、多表关系 一对多 案例&#xff1a;部门与…...

移动端UI风格营造舒适氛围

移动端UI风格营造舒适氛围...

摸鱼大数据——Spark SQL——DataFrame详解一

1.DataFrame基本介绍 DataFrame表示的是一个二维的表。二维表&#xff0c;必然存在行、列等表结构描述信息​表结构描述信息(元数据Schema): StructType对象字段: StructField对象&#xff0c;可以描述字段名称、字段数据类型、是否可以为空行: Row对象列: Column对象&#xff…...

【Java探索之旅】初识多态_概念_实现条件

文章目录 &#x1f4d1;前言一、多态1.1 概念1.2 多态的实现条件 &#x1f324;️全篇总结 &#x1f4d1;前言 多态作为面向对象编程中的重要概念&#xff0c;为我们提供了一种灵活而强大的编程方式。通过多态&#xff0c;同一种操作可以应用于不同的对象&#xff0c;并根据对象…...

[Day 26] 區塊鏈與人工智能的聯動應用:理論、技術與實踐

數據科學與AI的整合應用 數據科學&#xff08;Data Science&#xff09;和人工智能&#xff08;AI&#xff09;在現代技術世界中扮演著至關重要的角色。兩者的整合應用能夠為企業和研究人員提供強大的工具&#xff0c;以更好地理解、預測和解決各種複雜的問題。本文將深入探討…...

算法 —— 滑动窗口

目录 长度最小的子数组 无重复字符的最长子串 最大连续1的个数 将x减到0的最小操作数 找到字符串中所有字母异位词 最小覆盖子串 长度最小的子数组 sum比target小就进窗口&#xff0c;sum比target大就出窗口&#xff0c;由于数组是正数&#xff0c;所以相加会使sum变大&…...

【设计模式】工厂模式(定义 | 特点 | Demo入门讲解)

文章目录 定义简单工厂模式案例 | 代码Phone顶层接口设计Meizu品牌类Xiaomi品牌类PhoneFactory工厂类Customer 消费者类 工厂方法模式案例 | 代码PhoneFactory工厂类 Java高级特性---工厂模式与反射的高阶玩法方案&#xff1a;反射工厂模式 总结 其实工厂模式就是用一个代理类帮…...

Linux之计划和日志

计划任务 计划任务概念解析 在Linux操作系统中,除了用户即时执行的命令操作以外,还可以配置在指定的时间、指定的日期执行预先计划好的系统管理任务(如定期备份、定期采集监测数据)。通过安装at和crontabs这两个系统服务实现一次性、周期性计划任务的功能,并分别通过at、…...

C++ 多态篇

文章目录 1. 多态的概念和实现1.1 概念1.2 实现1.2.1 协变1.2.2 析构函数1.2.3 子类虚函数不加virtual 2. C11 final和override3.1 final3.2 override 3. 函数重载、重写与隐藏4. 多态的原理5. 抽象类6.单继承和多继承的虚表6.1 单继承6.2 多继承 7. 菱形继承的虚表(了解)7.1 菱…...

【LVGL-SquareLine Studio】

LVGL-SquareLine Studio ■ SquareLine Studio-官网下载地址■ SquareLine Studio-参考博客■ SquareLine Studio-安装■ SquareLine Studio-汉化■ SquareLine Studio-■ SquareLine Studio-■ SquareLine Studio-■ SquareLine Studio-■ SquareLine Studio- ■ SquareLine S…...