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

Datawhale X 魔搭 AI夏令营第四期 魔搭-AIGC方向全过程笔记

task1:   传送门

task2: 传送门

task3:   传送门


目录

Task1

赛题内容

可图Kolors-LoRA风格故事挑战赛

baseline要点讲解(请配合Datawhale速通教程食用)

Step1 设置算例及比赛账号的报名和授权

Step2 进行赛事报名并创建PAI实例

Step3 执行baseline

Step4 进行赛题提交

lora 调参参数介绍及 SD 的基础知识点(拓展)

文生图基础知识介绍

提示词

Lora

出图指引(SD WebUI):

常见出图参数说明:

常见训练参数说明:

ControlNet

Task2

AI生图技术的背景与发展

重要性

历史概览

技术原理

相关知识点

实践案例与工具

实践案例

​编辑

工具概述

AI生图的挑战

技术挑战

道德与伦理挑战

社会挑战

解决方案与展望

通义千问的使用

初步了解

编程和技术支持

使用技巧

在我们的学习中可以起到的辅助

通过通义千文给我们的提示词进行出图

拓展学习scepter webui

Task3

ComfyUI

速通ComfyUI

新建实例

执行git拉取项目等命令

一键执行安装程序(大约10min)

进入预览界面

配置工作流JSON文件

K采样器的参数说明

结束动作

LoRA微调

LoRA思路

1. 步数相关 repeat / epoch / batch_size 

2. 速率/质量相关 Ir学习率 / Dim网络维度 / Optimizer优化器

3. 优化器(Optimizer)


Task1

从零入门AI生图原理&实践 是 Datawhale 2024 年 AI 夏令营第四期的学习活动(“AIGC”方向),基于魔搭社区可图Kolors-LoRA风格故事挑战赛开展的实践学习。

Datawhale官方的速通教程链接:Task 1 从零入门AI生图原理&实践

接下来我将对跑通 baseline 的细节和涉及到的知识点进行一些介绍和记录。

赛题内容

  1. 参赛者需在可图Kolors 模型的基础上训练LoRA 模型,生成无限风格,如水墨画风格、水彩风格、赛博朋克风格、日漫风格......

  2. 基于LoRA模型生成 8 张图片组成连贯故事,故事内容可自定义;基于8图故事,评估LoRA风格的美感度及连贯性

样例:偶像少女养成日记

63b43fc686eb4618ba5db16fe5830a4c.png

相关作品在比赛品牌馆讨论区


可图Kolors-LoRA风格故事挑战赛

baseline要点讲解(请配合Datawhale速通教程食用)

Step1 设置算例及比赛账号的报名和授权

  • 开通阿里云PAI-DSW试用

      链接:https://free.aliyun.com/?spm=5176.14066474.J_4683019720.1.8646754cugXKWo&scm=20140722.M_988563._.V_1&productCode=learn

      请根据教程开通免费试用,新用户需要注册并实名账号,建议使用支付宝进行登录,可以减少一些基础信息的填写。

9fb0bc7330ab4415ae81a3bdd43829fc.png

  • 在魔塔社区进行账号授权

       链接:https://www.modelscope.cn/my/mynotebook/authorization

b958abecf8b14a3986aef80bfa7bebc7.png

       需要注意的是新用户需要先注册和绑定阿里云账号

37064460690348bba2fb554e201ea8a3.png

5aeb0554bfc344eca10e68a7dabd25d4.png

Step2 进行赛事报名并创建PAI实例

赛事链接:https://tianchi.aliyun.com/competition/entrance/532254

PAI实例:https://www.modelscope.cn/my/mynotebook/authorization

  • 如果之前试用的额度已经过期,可使用魔搭的免费Notebook实例

    c231d288718a43dfac0626dfc850cb98.png

b15fbb8099b74ebbbe6ca6dff6c785d9.png

       在账号注册、授权及报名参赛的环节不多赘述,速通教程已有详细的步骤指南,记得点开图片仔细查看。

Step3 执行baseline

3f7ba8dbe91a4f9896d2459e7e55f174.png

       按照教程新建终端,粘贴命令回车执行,这一步是为了拉取远程的baseline文件,需要等待一段时间。相关科普博客:基础git命令使用方法

git lfs install
git clone https://www.modelscope.cn/datasets/maochase/kolors.git

       拉取baseline后,可以在右侧文件中看到kolor文件夹,双击进入可以看到后缀.ipyhb的baseline文件,点击打开。

相关科普博客:

        接下来执行运行环境的代码块,我们需要安装 Data-Juicer 和 DiffSynth-Studio

  • Data-Juicer:数据处理和转换工具,旨在简化数据的提取、转换和加载过程
  • DiffSynth-Studio:高效微调训练大模型工具

6f39db9d1601452b85de3aba50f84ff3.png

有些时候因为网络及代理的问题,环境的安装容易缺漏,建议多执行几次,代码不会重复安装

       安装完成后,重启kernel,不重启容易爆显存影响baseline运行

1a514565582143fbb6c8ea5989d8970b.png

       接下来请依次执行下载数据集、数据处理

33ad6c34d5d749cdaa49d158b3595580.png

d3fe1755f05f4775ba6b738488507b00.png

       在这里留一个小问题:在模型训练之前,在数据集的处理上有没有更优的方法来让数据集更优质呢?是否需要进行一些转换、模块的引入及数据清洗呢?

       接下来开始进行模型微调训练:

  • 下载模型f83e4dc01d8249cbb45a61d74c4a46a4.png
  • 查看训练脚本传入参数18938aedcca547bc9be1d846632d28f6.png
  • 开始训练

543b319b2a7049c788efa02e1aeabde4.png

       调参对于微调模型训练尤关重要,涉及到参数量、优化器类型、训练策略等等...一个好的参数配置可以让微调模型的效果出人意料。

       在后面我会附上自己整理的 lora 调参参数介绍及 Stable Diffusion(SD) 的基础知识,感兴趣可以滑下文章尾部进行查看。

1c35d15313e74999af95b8180c809800.png

       最后我们加载我们所微调的模型并进行输出

from diffsynth import ModelManager, SDXLImagePipeline
from peft import LoraConfig, inject_adapter_in_model
import torchdef load_lora(model, lora_rank, lora_alpha, lora_path):lora_config = LoraConfig(r=lora_rank,lora_alpha=lora_alpha,init_lora_weights="gaussian",target_modules=["to_q", "to_k", "to_v", "to_out"],)model = inject_adapter_in_model(lora_config, model)state_dict = torch.load(lora_path, map_location="cpu")model.load_state_dict(state_dict, strict=False)return model# Load models
model_manager = ModelManager(torch_dtype=torch.float16, device="cuda",file_path_list=["models/kolors/Kolors/text_encoder","models/kolors/Kolors/unet/diffusion_pytorch_model.safetensors","models/kolors/Kolors/vae/diffusion_pytorch_model.safetensors"])
pipe = SDXLImagePipeline.from_model_manager(model_manager)# Load LoRA
pipe.unet = load_lora(pipe.unet,lora_rank=16, # This parameter should be consistent with that in your training script.lora_alpha=2.0, # lora_alpha can control the weight of LoRA.lora_path="models/lightning_logs/version_0/checkpoints/epoch=0-step=500.ckpt"
)

       调整prompt,设置你想要的图片风格,依次修改8张图片的描述

bea0e8299d8c4e30b944203accf39834.png

49f85487ddc140c6898f758bd12f395b.png

       提示词也有一些讲究,比如优质的提示词、提示词的排序(越靠前的提示词影响比重越大)、提示词书写策略、Embedding 模型介入。这些对出图效果也同样重要。同样的,我也会在后面的介绍中讲到,让我们先继续跑baseline。

031297dcf9c94a898872677d62448d4f.png

      至此,微调训练和模型出图已经全部完成啦

4d9e951dfb584e558c15452987cc70a9.png

Step4 进行赛题提交

将微调结果上传魔搭

链接:https://www.modelscope.cn/models/create

执行代码后,将模型文件和示例图下载到本地

mkdir /mnt/workspace/kolors/output & cd 
cp /mnt/workspace/kolors/models/lightning_logs/version_0/checkpoints/epoch\=0-step\=500.ckpt /mnt/workspace/kolors/output/
cp /mnt/workspace/kolors/1.jpg /mnt/workspace/kolors/output/

点击魔搭链接,创建模型,中文名称建议格式:队伍名称-可图Kolors训练-xxxxxx

        在提交过程的中的基础模型,是指你在训练过程及后续复现时使用的底模类型。一般来说SD XL的实现精度会更高,在训练过程中需要同步设置SD XL,在初步跑通 baseline 时使用基础即可,博主在提交的时候是选用的SD2.1,可参考选用。

591e3f41d40845d7a89697314c11e5eb.png

点击创建提交就完成啦!恭喜你已经顺利跑通了baseline。

记得完成后及时关闭你正在运行的实例,别让算力偷偷溜走了

别忘记打卡&在群里接龙!

0ee25b80d7fe4a689afe4244600732fc.png


lora 调参参数介绍及 SD 的基础知识点(拓展)

       

文生图基础知识介绍

文生图主要以SD系列基础模型为主,以及在其基础上微调的lora模型和人物基础模型等。

be5496f68ce54a90985deebfd08c073a.png

接下来,我们简单了解下提示词、lora、ComfyUI和参考图控制这些知识点。

提示词

提示词很重要,一般写法:主体描述,细节描述,修饰词,艺术风格,艺术家

  • 反向prompt推荐(会更推荐使用英文 prompt,因为底层调用 sd 时是输入 英文prompt的):
  • text, word, cropped, low quality, normal quality, username, watermark, signature, blurry, soft, soft line, curved line, sketch, ugly, logo, pixelated, lowres, vase,

提高出图质量正向prompt推荐:  a highly detailed European style bed room,elegant atmosphere,rtx lighting,global illuminations,a sense of understated sophistication,8k resolution,high quality,photorealistic,highly detailed,

Lora

Stable Diffusion中的Lora(LoRA)模型是一种轻量级的微调方法,它代表了“Low-Rank Adaptation”,即低秩适应。Lora不是指单一的具体模型,而是指一类通过特定微调技术应用于基础模型的扩展应用。在Stable Diffusion这一文本到图像合成模型的框架下,Lora被用来对预训练好的大模型进行针对性优化,以实现对特定主题、风格或任务的精细化控制。

       那我们 lora 训练的最终目的是什么呢?训练的本质在于找出当前训练集的最优解,优素材取决于不同角度、不同形态、灯光、图片质量。

       在Tag类型上,需要包括主题、动作、主要特征、视角、光影效果等其他如果在训练过程中对某一个特征不打Tag,则将成为固定模型特征。

       参考:Stable Diffusion Lora locon loha训练参数设置 - 知乎 (zhihu.com)

出图指引(SD WebUI):

描述内容prompt:主体、表情、服装、场景、环境、镜头、灯光、风格、画质、渲染器

靠前的Tag权重较高,适当运用括号法则、数字法则、混合

采样步数:数越高,细节多渲染慢,建议范围在20~40

采样器:karras去噪快

a噪点不居中,关键词识别度稍低,更具灵活度

DPM 建议使用DPM++SDE karras

文字相关度CFG scale : 建议在4~9

Seed 随机种子:-1随机,其他为已经完成出图的风格编号

常见出图参数说明:

batch_size     并行数量,如果增加bs,需要同步增加学习率对应 根号2 倍率

enable_bucket      开启bucket来支持不同长宽比的训练图片

resolution     训练时图片的分辨率

flip_aug   水平翻转数据增强,要求训练目标对左右方向不敏感

random_crop    随机裁剪数据增强

color_aug      颜色数据增强,要求训练目标对颜色不敏感

shuffle_caption     打乱文本描述

keep_tokens    保证最前面的几个 tag 不被打乱,默认为1

num_repeats    学习次数,每张图片在一个epoch内重复多少次,实物30~100,人像20~30

常见训练参数说明:

pretrained_model_name_or_path

指向基底模型的路径,支持 .ckpt、.safetensors 和 Diffusers 格式。

output_dir:指定模型保存的路径

output_name:指定模型保存的文件名(不含扩展名)

save_model_as:模型保存格式,ckpt, safetensors, diffusers, diffusers_safetensors.

dataset_config:指向 TOML 配置文件的路径

max_train_steps:指定训练的steps数,lora总step在1500~6000,checkpoint在30000+

total optimization steps = Imag * repeat * epoch / batch_size

max_train_epochs:指定训练的epochs数,10~15,根据loss值

save_every_n_steps:每隔多少 steps 保存模型

save_every_n_epochs:每隔多少 epochs 保存模型

mixed_precision:使用混合精度来节省显存。

gradient_checkpointing:用于节省显存,但是会增加训练时间。

xformers / mem_eff_attn:用于节省显存。

clip_skip:使用 CLIP 的倒数第几层特征,最好与基底模型保持一致。

network_dim: 学习精细度,为Unet-lr的1/10~1/2,场景128,人物32~128

network_alpha:用于保证训练过程的数值稳定性,防止下溢,默认为1.

network_weights: 加载预训练的 LoRA 模型并继续训练。

network_train_unet_only:只训练 U-Net 的 LoRA

network_train_text_encoder_only:只训练 Text Encoder 的 LoRA

optimizer_type:选择优化器,推荐使用AdamW8bit le-4 , DAdaptation 1

AdamW8bit 对于显存小的用户更友好。Lion 优化器的使用率也很高,学习率需要设置得很小(如AdamW优化器下的 1/3,或者更小)

使用 DAdaptation 时,应当将学习率设置在1附近,text_encoder_lr 可以设置成1,或者小一点,0.5之类。使用DAdaptation 时,推荐将学习率调整策略调整为 constant 。

learning_rate:设置学习率,推荐le-4

unet_lr:对 U-Net 的 LoRA 单独设置学习率

一般可以设为 1e-4,覆盖--learning rate 的设置。

text_encoder_lr:为 Text Encoder 的 LoRA 单独设置学习率

一般可以设为 5e-5,覆盖--learning rate 的设置。

lr_scheduler / --lr_warmup_steps / --lr_scheduler_num_cycles / --lr_scheduler_power:设置学习率 scheduler、warmup. 学习率调度器,有以下几种

["cosine_with_restarts", "cosine", "polynomial", "constant", "constant_with_warmup", "linear"],推荐使用 cosine_with_restarts,它会使学习率从高到低下降,变化速度先慢后快再慢

       小tip:  在后续进行微调参数的优化训练时建议将每一次的训练参数及效果记录下来,方便进行优化调参,可以很直观的看出训练效果的对比。示例如下:

20f32f18732c47d192257d58187c34be.png

      完成baseline的同学们想过如何让出图变得更稳定一些呢?比如一些线稿?场景?人物动作?那么 ControlNet 可能可以帮到你

ControlNet

       ControlNet是一种用于精确控制图像生成过程的技术组件。它是一个附加到预训练的扩散模型(如Stable Diffusion模型)上的可训练神经网络模块。扩散模型通常用于从随机噪声逐渐生成图像的过程,而ControlNet的作用在于引入额外的控制信号,使得用户能够更具体地指导图像生成的各个方面(如姿势关键点、分割图、深度图、颜色等)。

       下面附上 ControlNet 导图,可以先了解一下。

84108e18367c4c5eb18cee9c3be548e6.png


Task2

从零入门AI生图原理&实践 是 Datawhale 2024 年 AI 夏令营第四期的学习活动(“AIGC”方向),基于魔搭社区“可图Kolors-LoRA风格故事挑战赛”开展的实践学习。

Datawhale官方的Task2链接:Task02

往期Task1链接:Task01

【学习者手册】:链接直达

【QA文档】:链接直达

【赛事官网】:链接直达

欢迎感兴趣的同学们加入我们的学习阵营来!


AI生图技术的背景与发展

重要性

AI生图技术,即AI生成图像技术,是人工智能生成内容(AIGC)领域的一个重要组成部分。随着AI技术的不断进步,AIGC已经成为了一个重要的发展趋势,并在多个行业中产生了深远的影响。对于不同的人群而言,了解AI生图技术有着不同的意义:

  • 对于普通用户:了解AI生图技术可以帮助他们识别和避免被AI生成的内容所误导,同时也可以利用这些工具来进行简单的创意绘图。
  • 对于内容创作者:AI生图工具可以帮助创作者快速提高工作效率,制作出所需的内容。
  • 对于技术人员:掌握AI生图技术的能力和玩法有助于针对业务需求进行开发和优化,甚至攻克技术难题。
历史概览

AI生图技术的发展可以追溯到20世纪70年代,艺术家哈罗德·科恩(Harold Cohen)发明的AARON系统是一个早期的尝试,它可以通过机械臂输出绘画作品。进入21世纪,随着深度学习技术的兴起,AI生图技术迎来了突破性进展。

  • 2012年:吴恩达等人训练出了第一个能够生成“猫脸”图像的模型,这是使用卷积神经网络(CNN)进行图像生成的里程碑事件。
  • 2015年:谷歌推出的“深梦”(Deep Dream)图像生成工具进一步展示了深度学习在图像生成方面的潜力,能够将给定图片转换成极具艺术性的图像。
  • 2021年:OpenAI发布了DALL-E模型,这是一个基于GPT-3语言处理模型的深度学习算法模型,它能够根据文本提示生成多样化的图形设计。DALL-E的出现被视为AI生图技术的一个重大进步,因为它能够生成高质量、多样化的图像,被认为有可能对设计行业产生重大影响。

技术原理

AI生图模型通常是多模态机器学习模型,它们通过深度神经网络学习大量的图像库和文本描述,以建立图像描述和图像特征之间的对应关系。这样的模型能够在接收到文本描述或其他类型的输入时,生成符合语义的图像。

相关知识点
  • 恐怖谷效应:这是一个心理学概念,指的是随着仿真人形的仿真度增加,人们对它们的亲和力也随之增加,但当仿真度达到某个阈值时,人们的反应会突然变得负面,产生排斥、恐惧或困惑等情绪。AI生图技术在早期阶段很难被广泛接受,部分原因可能与恐怖谷效应有关。

  • Deepfake技术:这是一种使用深度学习算法生成高度逼真的伪造媒体的技术,尤其是在视频和音频方面。虽然这项技术具有潜在的应用价值,但其滥用可能导致严重的伦理和社会问题,例如在政治领域制造假新闻或操纵舆论,以及在经济和法律领域造成误导。

    科技是一把双刃剑,deepfake技术日渐成熟,deepfake检测技术也在日益受到重视
    技术如若用于邪处,那是极其可怕的。你支持deepfake的研究吗?日益成熟的deepfake是好是坏呢?

  • Kolors(可图)模型(点击即可跳转魔搭模型介绍页) 是快手开源的文本到图像生成模型,该模型具有对英语和汉语的深刻理解,并能够生成高质量、逼真的图像。

    代码开源链接:https://github.com/Kwai-Kolors/Kolors

    模型开源链接:https://modelscope.cn/models/Kwai-Kolors/Kolors

    技术报告链接:https://github.com/Kwai-Kolors/Kolors/blob/master/imgs/Kolors_paper.pdf

    魔搭研习社最佳实践说明:https://www.modelscope.cn/learn/575?pid=543

  • 魔搭平台:这是一个汇集了大量AI模型和资源的平台,用户可以在此平台上学习和探索AI生图技术的最新进展。通过魔搭平台,开发者可以获得最新的模型、工具和教程,从而持续推动AI生图技术的发展。

实践案例与工具

实践案例

AI生图技术已经广泛应用于多个领域,从艺术创作到商业广告,再到教育和娱乐,都有着它的身影。这里有几个典型的实践案例:

  • 艺术创作:艺术家们使用AI生图工具来辅助创作,比如生成初步的概念草图或者作为灵感来源。例如,艺术家可以输入一些关键词,AI就会生成与这些关键词相关的图像,这样可以帮助艺术家更快地构思出作品的大致方向。
  • 商业广告:广告设计师利用AI生图技术快速生成多种设计方案,以供客户选择。这种方式可以大大提高设计效率,同时也能提供更多样化的设计方案。
  • 教育:在教育领域,AI生图技术可以用来创建互动式的学习材料,比如生成与教学内容相关的插图或动画,帮助学生更好地理解和记忆知识点。
  • 娱乐:在电影和游戏行业中,AI生图技术可以用于生成背景环境、角色设计等,减少手工制作的时间和成本。

在AI生图兴起的这段时间,其实各行各业都有所涉及,也诞生了许多工具可以帮助我们在日常生活及学习工作的某一些环节。例如前段时间爆火的小说配图抖音就是如此。

工具概述

AI生图技术的背后是一系列先进的工具和技术,这些工具不断发展,使得生成的图像越来越接近真实世界。以下是几个值得关注的工具:

  • SCEPTER:这是一个开源的代码仓库,专注于生成模型的训练、微调和推理,涵盖了图像生成、转换和编辑等多个下游任务。SCEPTER整合了社区驱动的实现方法以及阿里巴巴集团同义实验室的专有方法,为研究人员和从业者提供了全面的工具包。
  • DALL-E:由OpenAI发布的DALL-E模型,是一个深度学习算法模型,能够根据文本提示生成多样化的图像。它最初基于GPT-3语言处理模型,并经过改进,现在已经发展到了DALL-E 2,生成的图像质量显著提高。
  • Diffusion Models:扩散模型是近年来图像生成领域的一个热门话题,它通过逐步添加噪声然后逐步去除噪声的过程来生成图像。这种方法在图像合成方面表现出了卓越的能力。
  • GANs (Generative Adversarial Networks):生成对抗网络是AI生图领域最常用的模型之一,它通过两个网络(生成器和判别器)的对抗训练来生成高质量的图像。

AI生图的挑战

AI生图技术虽然取得了巨大的进步,但在实际应用中仍然面临着不少挑战。以下是一些关键的挑战和可能的解决方案:

技术挑战
  1. 理解语义:尽管AI模型能够根据文本描述生成图像,但它们在理解文本的深层含义和上下文方面仍有局限。例如,模型可能会误解某些比喻或隐喻表达,导致生成的图像与预期不符。为了改善这一点,可以进一步加强模型的语言理解能力,比如引入更多语境丰富的数据进行训练。

  2. 细节处理:早期的AI生图模型在处理复杂的细节时往往不尽人意,尤其是在描绘人体结构、纹理等方面。随着时间的推移,这一问题得到了一定程度的缓解,但仍然存在。一种可能的解决方案是采用更高分辨率的训练数据,并利用特定领域的知识来优化模型。

  3. 一致性问题:在生成一系列相关联的图像时,保持图像之间的一致性是一项挑战。例如,在生成连续场景或故事板时,确保角色和环境的一致性至关重要。这可以通过引入条件生成机制和更精细的控制机制来改善。

道德与伦理挑战
  1. 版权问题:使用AI生图技术生成的艺术作品可能涉及版权问题,特别是在使用现有艺术品作为训练数据的情况下。开发者和用户需要确保遵循相关的法律法规,并尊重原创作者的权利。

  2. 偏见与歧视:AI模型可能无意中学习到数据中的偏见,导致生成的内容带有偏见或歧视性的特征。为了避免这种情况,重要的是要确保训练数据的多样性和包容性,并且在模型训练过程中采用公平性评估指标。

  3. 隐私问题:AI生图技术在某些情况下可能会侵犯个人隐私,尤其是在未经同意的情况下使用个人肖像数据。因此,保护个人隐私和数据安全是非常重要的,这也需要通过严格的法律监管和技术手段来实现。

社会挑战
  1. 就业影响:随着AI生图技术的发展,一些传统的设计和创意行业可能会受到影响。一方面,技术进步可以提高效率,降低成本;另一方面,也可能导致一些岗位的消失。因此,有必要开展技能培训项目,帮助相关人员适应新技术环境。

  2. 可信度与验证:随着AI生成内容越来越难以与真人创作区分,辨别真伪变得更加困难。这不仅影响到艺术领域的原创性,还可能在其他领域造成信任危机。开发可靠的验证技术和标准变得尤为重要。

  3. 教育与普及:为了让公众更好地理解AI生图技术及其潜在影响,需要加强教育和普及工作。这有助于提高人们的媒介素养,减少误解和不必要的恐慌。

解决方案与展望
  • 技术层面:继续推进算法和模型的创新,如采用更高效的数据增强技术、强化学习策略等,以提高模型的泛化能力和生成质量。
  • 伦理指导:建立一套伦理指导原则,确保AI生图技术的健康发展。这包括制定明确的政策来指导数据收集、模型训练和应用部署。
  • 公众参与:鼓励公众参与到AI技术的讨论和发展中来,通过举办研讨会、公开讲座等形式增加透明度,增进公众的理解和支持。
  • 开源互助:在对AI工具进行开源的同时交流并引导正确的使用观念,并且研究对AI工具害的一面的预防。

通义千问的使用

通义千问是一款强大的AI助手,它不仅可以帮助用户解答各种问题,还能提供编程和技术支持。下面是如何充分利用通义千问的一些思考和建议:

初步了解
  1. 功能概览:首先,熟悉通义千问的基本功能。它不仅可以回答问题,还能进行编程和技术支持,提供文本创作、信息查询等多种服务。了解这些功能可以帮助我们更好地利用它。

  2. 自我介绍:通义千问通常会有一个简短的自我介绍,这有助于用户了解它可以做什么。例如,通义千问会强调其在编程方面的强大能力,这对我们使用它来解决问题特别有用。

编程和技术支持
  1. 代码解析:当遇到难以理解的代码段落时,可以向通义千问求助。它能够帮助我们理解代码的结构和逻辑,甚至可以为我们解释特定行的作用。例如,当我们面对一个复杂的文生图代码时,通义千问可以帮我们逐行解析代码,理解每一部分的功能。

  2. 实践指导:在进行具体的编程任务时,通义千问可以给出详细的步骤指导。例如,在进行AI生图任务时,通义千问可以告诉我们如何准备数据、如何设置模型参数,以及如何优化生成的图像。

使用技巧
  1. 清晰表述问题:在向通义千问提问时,确保问题描述得尽可能清楚。这样可以得到更准确的答案。例如,如果我们想要了解某个函数的工作原理,最好提供该函数的完整代码片段以及我们希望了解的具体方面。

  2. 逐步深入:如果一个问题涉及多个层面,可以考虑分步骤提出问题。先从基本的概念入手,然后逐渐深入到更具体的技术细节。

  3. 反馈和修正:如果通义千问的回答未能满足需求或者存在误差,可以向它反馈并请求修正。这种互动过程有助于改进答案的质量。

在我们的学习中可以起到的辅助
  1. 代码架构分析:假设我们有一个文生图的代码基线,通义千问可以帮助我们分析代码的整体架构。例如,它可以帮助识别哪些部分负责数据准备,哪些部分负责模型训练,以及哪些部分负责生成图像。

  2. 代码逐行解析:对于代码中的具体行,通义千问可以给出详细的解释。例如,如果我们在代码中看到一行涉及到模型预测的部分,通义千问可以解释这一行代码如何调用模型来进行预测,并解释预测结果的含义。

  3. 实战演练:通义千问还可以帮助我们完成一些实战任务。例如,如果我们正在做一个基于话剧的连环画项目,需要生成一系列相关的图像,通义千问可以提供如何编写合适的提示词的建议,以及如何利用现有的AI工具来生成这些图像。

通过通义千文给我们的提示词进行出图

首先我们将提示词进行替换,并且我自己也对反向提示词进行了拓充。

并且在其中可以看到,我将 torch.manual_seed() 方法进行了注释

torch.manual_seed()是设置CPU生成随机数的种子,方便下次复现实验结果。所以这个方法传参相当于设置了控制了出图。

把这一个方法注释掉就可以取消对种子的控制,做到随机出图

控制seed是为了让小白更容易去上手文生图的过程,容易复现调整,因为实际上可操作的参数还是很多的。在后续的学习会一步一步的拓展知识,跟着我们的学习一步一步来就可以啦,有兴趣也可以额外去学习一下。

下面是我最后出来的结果:

下面这次出图我增加了出图的 steps,让AI渲染的次数更深一些,但需要注意的是,过大的steps也会导致图片变得崩坏,要取适当的参数量。


拓展学习scepter webui

魔搭体验网址:传送门

我们可以通过scepter studio的平台来体验更完整的内容:

更多的出图参数设置,不熟悉这些参数的同学可以到我上一篇笔记中阅览。

设置ControlNet

咒语书所给的样例:

我们通过咒语书,来设定自己的出图提示词和参数,比如出一张开心的小狗狗:

再出一张我们DataWhale的吉祥物,在我们的提示词中可以适当的运用一些法则来达到更好的出图

换个3D风格我们再出一遍吧!

魔搭的模型微调的界面,但目前暂未开放。

魔搭社区提供的体验地址里面缺失了微调模型的功能,如果大家希望能使用secpter完整的功能,我们可以将其私有部署到我们自己的服务器。

github地址:https://github.com/modelscope/scepter

可以通过官方readme文件中的教程进行操作,该模块对基础有一定的要求,适合学有余力的同学


最后不知道大家是否有注意到,这次笔记的前两张图也是由通义千问生成的呢哈哈!


Task3

 Datawhale官方的Task3链接:Task03

往期Task1、Task2链接:Task01, Task02

【学习者手册】:链接直达

【QA文档】:链接直达

【赛事官网】:链接直达

ComfyUI

       ComfyUI是一个基于深度学习的图像生成软件,它通常被用于创建高质量的图像,特别是与AI艺术生成相关。该软件支持使用各种预训练的模型,用户可以通过简单的拖放操作来构建自己的图像生成流程。ComfyUI的特点包括直观的用户界面和强大的脚本功能,使得用户能够轻松地定制和优化图像生成过程。

        ComfyUI的核心在于其节点编辑系统,用户可以通过组合不同的节点来构建复杂的图像生成脚本。这些节点可能包括模型加载器、图像处理模块、输出模块等。软件的一个显著优点是它能够支持多种模型和工具链,允许用户进行各种创意实验。

       此外,ComfyUI经常更新,添加新功能和改进现有功能,以保持与最新技术的发展同步。它还具有一个活跃的社区,用户可以在这个社区中交流想法、分享预设以及获取支持。

参考手册:ComfyUI用户手册


速通ComfyUI

接下来我们来跑一下跟着教程速通一下ComfyUI:

新建实例

在这里,我们依旧选择使用魔搭社区提供的Notebook和免费的GPU算力体验来体验ComfyUI。

这里需要注意的是,不要使用 Task1 中的baseline实例来跑后面内容,会发生环境重叠出错。

执行git拉取项目等命令

等待实例启动,进入实例,新建终端执行命令

git lfs install
git clone https://www.modelscope.cn/datasets/maochase/kolors_test_comfyui.git
mv kolors_test_comfyui/* ./
rm -rf kolors_test_comfyui/
mkdir -p /mnt/workspace/models/lightning_logs/version_0/checkpoints/
mv epoch=0-step=500.ckpt /mnt/workspace/models/lightning_logs/version_0/checkpoints/   

一键执行安装程序(大约10min)

进入预览界面

PS:如果链接访问白屏,或者报错,就等一会再访问重试,程序可能没有正常启动完毕

待执行到最后一个代码块出现跳转链接时,可以点击跳转,也可以复制链接到浏览器中访问

这是我打开之后的工作流界面:

配置工作流JSON文件

先将task3教程中的两个JSON文件下载到本地:

在工作流中点击加载:

这里可能会显示爆红,这意味着前面的模型下载和配置没有做好:

回到jupyter中检查:

正常加载后界面如下,这是两个JSON文件的各个模块说明

K采样器的参数说明

接下来我将详细介绍出图参数调整模块(K采样器)的参数说明

Positive:正向条件

Negative:负向条件

latent_image:将被去噪的潜在图像

seed:用于创建噪声的随机种子

control_after_generate:在每个提示后更改上述种子号的能力。节点可以randomizeincrementdecrement或保持种子号fixed

steps:去噪过程中使用的步骤数。采样器允许进行的步骤越多,结果就越准确。但过大的steps会导致出图过爆,出现不好的画面。

cfg:分类器自由引导(cfg)比例决定了采样器在实现提示内容方面的积极性。更高的比例强制图像更好地代表提示,但设置过高的比例会负面影响图像质量。

sampler_name:使用哪个采样器

scheduler:使用哪种计划

denoise:通过噪声擦除多少潜在图像的信息

结束动作

出图完毕之后,记得保存修改并停止远程ComfyUI的连接,并关闭实例。

ComfyUI的丰富组件及搭配,给许多不同的独立场景工作流提供了可能,感兴趣的同学可以去了解下,下面推荐一位up主:赛博迪克朗的个人空间-赛博迪克朗个人主页-哔哩哔哩视频 (bilibili.com)


LoRA微调

低秩适应(LoRA)。LoRA是什么?它是如何工作的?与其他流行的微调方法相比如何?

LoRA思路

低秩适应(Low-Rank Adaptation)是一种参数高效的微调技术,其核心思想是对大型模型的权重矩阵进行隐式的低秩转换。

什么是低秩转换呢?

整体的想法和概念与主成分分析(PCA)和奇异值分解(SVD)有关,我们通过一个较低维度的表示来近似表示一个高维矩阵或数据集。

换句话说,我们试图找到原始特征空间(或矩阵)中少数维度的(线性)组合,能够捕捉数据集中大部分的信息。

如下图所示:

1. 步数相关 repeat / epoch / batch_size 

  • epoch多轮次比单轮次要好,通过设置可以每轮保存一组模型,多轮次说明有多组模型,得到好概率的可能是比单轮次就一个模型的概率是要高的,epoch一般设置5~10;
  • batch_size要是高,一是可能显存带不动,二是值越高训练越快 越可能学得囫囵吞枣收敛得慢。 

 batch_size 从1到2,Ir就要*2

2. 速率/质量相关 Ir学习率 / Dim网络维度 / Optimizer优化器


学习率Ir,控制了每次参数更新的幅度,过低参数更新幅度小 训练收敛就慢 陷入局部最优解 训练时间增加,过低也会导致训练初期无法有效学习到特征;过高,参数更新幅度大 错过全局最优解附近的局部最优解 找不到稳定的收敛点,常用cos的学习率衰减策略,初始使用较大的学习率快读接近全局最优解,在随着训练的进行逐渐减小学习率,使得逐渐细化搜索空间,找到全局附近的局部最优解,提高收敛的稳定性。

前面提到的“bs提高,Ir也要提高”是因为bs较大时会导致参数更新的方差减小从而使得梯度更新幅度也减小,这时就需要Ir也相应地增大。我这里还在思考bs、Ir都提高了的话,训练速度是不是也会大幅度提高?chat告诉我不一定,因为bs大占用的内存和计算量也增加,Ir大模型容易不稳定不收敛,理论上肯定是会增加训练速度,但实际上还是要根据你的显卡来设置bs值,训练速度变向是看钞能力,跑起来才是王道,先优先考虑生成效果再训练速度吧~

3. 优化器(Optimizer)

Lion比AdamW8bit的优点是更快,总训练步数在3k-1w内都可以考虑选它。

图像这里居然不要很多,作者这里是考虑到耗费时间等因素,我觉得有道理,如果我训练效果不好,我将尝试将重新创建我的数据集,只选出质量最高的30来张图像来做训练。 

loss值的最优区间0.07-0.09,但loss值只是一个参考,但更多的还是要通过XYZ测试来看模型的好坏,原图VS根据原图tag测试模型生成的图片。

相关文章:

Datawhale X 魔搭 AI夏令营第四期 魔搭-AIGC方向全过程笔记

task1: 传送门 task2: 传送门 task3: 传送门 目录 Task1 赛题内容 可图Kolors-LoRA风格故事挑战赛 baseline要点讲解(请配合Datawhale速通教程食用) Step1 设置算例及比赛账号的报名和授权 Step2 进行赛事报名并创建PAI实例 Step3 执行baseline Step4…...

数组---怎么样定义和引用数组

一怎么定义数组 例 int a[10]; //定义了一个一维数组,数组名为a,此数组包含10个整型元素 所以我们了解到数组的基本定义为 类型符 数组名 [常量表达式] 定义数组可以包括常量和符号常量如 int [ 35 ];但是不能利用变量定义如 int n; …...

Nginx—Rewrite

目录 一、Nginx—Rewrite概述 1、常用的Nginx正则表达式 2、Rewrite功能 3、Rewrite跳转实现 4、Rewrite执行顺序和语法格式 二、location概述 1、location分类 2、location 常用的匹配规则 3、location 优先级 案例一: 案例二: 案例三&…...

《深入浅出WPF》读书笔记.5控件与布局(上)

《深入浅出WPF》读书笔记.5控件与布局(上) 背景 深入浅出WPF书籍学习笔记附代码。WPF中数据是核心是主动的,UI是数据的表达是被动的。 程序的本质是数据算法;控件的本质是数据行为; 5.控件与布局 一、6类控件派生关系 1.布局控件:可以容纳多个控件…...

二叉树的判断

二叉树的判断 判断一颗二叉树是不是搜索二叉树 (左边的比根小,右边的比根大) 中序遍历一下,如果是的话就一定是升序的 如何判断一颗二叉树是否是完全二叉树 1.遍历任意的节点时候,如果返回右孩子没有左孩子&#x…...

Hive3:常用的内置函数

1、查看函数列表 -- 查看所有可用函数 show functions; -- 查看count函数使用方式 describe function extended count;2、数学函数 -- round 取整,设置小数精度 select round(3.1415926); -- 取整(四舍五入) select round(3.1415926, 4); -- 设置小数精度4位(四…...

设计模式---构建者模式(Builder Pattern)

构建者模式(Builder Pattern) 是一种创建型设计模式,旨在将复杂对象的构建过程与其表示分离。它允许使用相同的构建过程创建不同的表示。该模式通常用于构建复杂对象,这些对象由多个部分组成或具有多个可选属性。 构建者模式的核…...

Pytorch中transform的应用

在PyTorch中,transforms模块主要用于对图像进行预处理和数据增强,以便于训练深度学习模型。这些转换操作可以包括裁剪、缩放、旋转、翻转等,以及对图像进行标准化处理。下面将详细介绍一些常用的transforms操作及其应用。 1. 常用的transfor…...

okular阅读软件简介

okular阅读软件官网:https://okular.kde.org/zh-cn/ Okular 是一款由 KDE 开发的跨平台文档阅读器,以其功能丰富、轻巧快速而著称。它支持多种文件格式,包括 PDF、EPub、DjVu、MD 文档,以及 JPEG、PNG、GIF、Tiff 和 WebP 图像&a…...

【书生大模型实战营(暑假场)闯关材料】基础岛:第1关 书生大模型全链路开源体系

【书生大模型实战营(暑假场)闯关材料】基础岛:第1关 书生大模型全链路开源体系 简介一、背景介绍1.1 背景介绍1.2 全链路开源开放体系的优势 二、全链路开源开放体系的主要特点2.1 模型组件的公开和共享2.2 数据集的公开和共享2.3 模型的互操…...

掌握抽象工厂模式:打造灵活且强大的跨平台产品族

抽象工厂模式是一种创建型设计模式,它的核心思想是提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。这种模式通过使用抽象工厂来封装和隔离具体产品的创建过程,使得客户端可以通过工厂接口来创建一族产品,从…...

【Hadoop】建立圈内组件的宏观认识(大纲版)

Hadoop生态圈解析:各组件的主要功能及作用详解 Hadoop生态圈是由一系列开源组件组成的,这些组件共同构建了一个大规模分布式计算和存储平台。 01存储类型组件 HDFS Hadoop体系的核心组件之一,它是一个分布式文件系统,被设计用于存…...

NFS主从同步Rsync、sersync2

准备工作检查selinux 防火墙 #关闭 selinux sed -i s/^SELINUX.*/SELINUXdisabled/ /etc/selinux/config #关闭防火墙 systemctl stop firewalld;systemctl disable firewalld1.安装nfs相关包 # 所有节点安装nfs相关包 yum install nfs-utils -y systemctl enable nfs-utils …...

uniapp项目中,在原有数据中增加选中的状态,数据不改变

uniapp项目中,在原有数据中增加选中的状态,选中后打印的数据显示有变化,然而文本的数据并没有发生变化 看代码 export default {data() {return {thicate: [{ id: 1, text: "Item 1" },{ id: 2, text: "Item 2" },{ id…...

WPF自定义控件

控件模板 顾名思义就是在原有的控件上进行模版修改成自己需要的样式 把ProgressBar修改为一个水液面的进度条 <Window x:Class"XH.CustomLesson.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://s…...

Java中的全局异常处理器 -- GlobalExceptionHandler

开发记录&#xff1a;全局异常处理器笔记 import lombok.extern.slf4j.Slf4j; import org.mybatis.spring.MyBatisSystemException; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.RedisConnectionFailureException; im…...

R语言文本挖掘-万字详细解析tm包

tm包&#xff08;Text Mining Package&#xff09;是R语言中用于文本挖掘的强大工具包&#xff0c;它提供了一系列的功能来处理和分析文本数据。偶然看到这个包&#xff0c;我们一起看看其中的基本功能&#xff1a; 数据载入&#xff1a;tm包支持从多种数据源载入文本数据&…...

JWT中的Token

1.JWT是什么&#xff1f; jwt&#xff08;json web token的缩写&#xff09;是一个开放标准&#xff08;rfc7519&#xff09;&#xff0c;它定义了一种紧凑的、自包含的方式&#xff0c;用于在各方之间以json对象安全地传输信息&#xff0c;此信息可以验证和信任&#xff0c;因…...

苹果在iOS 18.1中向第三方开发者开放iPhone的NFC芯片

苹果公司今天宣布&#xff0c;开发者很快就能首次在自己的应用程序中提供 NFC 交易功能&#xff0c;而目前这主要是Apple Pay独有的功能。从今年晚些时候的 iOS 18.1 开始&#xff0c;开发者将可以使用新的 API 提供独立于 Apple Pay 和 Apple Wallet 的应用内非接触式交易。 这…...

系统开发之禁止卸载应用名单

本文目的主要是记录自己系统&#xff08;Android7.1系统&#xff09;开发实现代码&#xff0c;以便后期通用的功能可以直接使用&#xff0c;不需要再去通过搜索然后筛选再验证的繁琐流程&#xff0c;大大减小自己的开发时间。 我实现思路是在系统内新增自己的数据库用来记录禁止…...

wait 和 notify

目录 wait() 方法 notify() 方法 notifyAll() 方法 nofity 和 notifyAll wait 和 notify wait 和 sleep 的区别 wait 和 join 的区别 由于线程之间是抢占式执行的&#xff0c;因此&#xff0c;线程之间执行的先后顺序难以预知&#xff0c;但是&#xff0c;在实际开发中&…...

docker 启动 mongo,redis,nacos.

docker run --name mymongodb -e MONGO_INITDB_ROOT_USERNAMEadmin -e MONGO_INITDB_ROOT_PASSWORDXiaoyusadsad -p 27017:27017 -v /path/to/mongo-data:/data/db -d mongodb/mongodb-community-server:4.4.18-ubuntu2004-v 的目录必须是绝对目录 目录必须 chmod 777 /path/…...

Docker Swarm 搭建

Docker Swarm 搭建 1. 环境介绍 操作系统Centos 7Centos 7Centos 7内核版本Linux 3.10.0-957.el7.x86_64Linux 3.10.0-957.el7.x86_64Linux 3.10.0-957.el7.x86_64主机名称swarm-managerswarm-worker1swarm-worker2IP192.168.1.100192.168.1.200192.168.1.250Docker Domain20…...

浅述TSINGSEE青犀EasyCVR视频汇聚平台与海康安防平台的区别对比

在我们的很多项目中都遇到过用户的咨询&#xff1a;TSINGSEE青犀EasyCVR视频汇聚平台与海康平台的区别在哪里&#xff1f;确实&#xff0c;在安防视频监控领域&#xff0c;EasyCVR视频汇聚平台与海康威视平台是两个备受关注的选择。它们各自具有独特的功能和优势&#xff0c;适…...

设计模式系列:策略模式的设计与实践

一、背景 策略模式&#xff08;Strategy Pattern&#xff09;是一种行为设计模式&#xff0c;它定义了一系列的算法&#xff0c;并将每一个算法封装起来&#xff0c;使它们可以相互替换。策略模式让算法的变化独立于使用算法的客户。 二、结构 策略模式主要包含三个角色&…...

数据挖掘之数据预处理

数据预处理是数据挖掘中的一个关键步骤&#xff0c;它的主要目的是对原始数据进行清洗、转换和格式化&#xff0c;以确保其质量和一致性&#xff0c;从而为后续的数据挖掘任务&#xff08;如分类、回归、聚类等&#xff09;提供可靠的数据基础。数据预处理一般包括以下几个主要…...

RocketMQ核心知识点整理,值得收藏!

1. 基本概念 Topic: 消息类别的集合&#xff0c;如订单消息发送到order_topic。标签&#xff08;Tag&#xff09;: 同一Topic下区分不同消息的标志&#xff0c;实现精细化消息管理。ConsumeGroup: 消息消费组&#xff0c;可订阅多个Topic&#xff0c;一个Topic可被多个消费组订…...

微信小程序骨架屏

骨架屏是常用的一种优化方案&#xff0c;针对于页面还未加载完时给用户的一种反馈方式。如果自己要写骨架屏有点复杂因为页面的元素过多且不稳定&#xff0c;这边直接使用微信开发工具生成骨架屏。也不只有微信开发工具有像常用的抖音开发工具&#xff0c;字节开发工具都有对应…...

Window下node安装以及配置

在 Windows 下安装 Node.js 非常简单&#xff0c;你可以通过官方提供的安装程序或者使用多版本管理工具&#xff08;如 NVM-Win&#xff09;来进行安装。下面是两种方法的具体步骤&#xff1a; 1. 安装 Node.js程序 步骤如下&#xff1a; 访问官方网站&#xff1a; 访问 Node…...

校园疫情防控系统--论文pf

TOC springboot432校园疫情防控系统--论文pf 课题的来源 2019年在我国武汉爆发了一场规模非常庞大、传播速度十分迅速、对人体危害及其严重的新冠肺炎疫情。引发此次急性感染性新冠肺炎疫情的冠状病毒传播性较强&#xff0c;其传播主要是通过呼吸道飞沫和密切接触这两个途径…...

在Debian 9上使用Apt安装Java的方法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 介绍 Java 和 JVM&#xff08;Java 虚拟机&#xff09;是许多软件的必备组件&#xff0c;包括 Tomcat、Jetty、Glassfish、Cassandra 和…...

人工智能在网络安全中的三大支柱

人工智能 (AI) 席卷了网络安全行业&#xff0c;各种供应商都在努力将 AI 融入其解决方案中。但 AI 与安全之间的关系不仅仅在于实现 AI 功能&#xff0c;还在于攻击者和防御者如何利用该技术改变现代威胁形势。它还涉及如何开发、更新和保护这些 AI 模型。如今&#xff0c;网络…...

rk3568mpp终端学习笔记

RK3568Terminal封装MppGraph 通过脚本取和设置音量/zigsun/bin/linux/bin.debug.Linux.rk3568/get_record_voice_value.sh /zigsun/bin/linux/bin.debug.Linux.rk3568/set_record_voice_value.sh class RK3568Terminal : public IAVLinkManager, p…...

【C++继承】赋值兼容转换作用域派生类的默认成员函数

1.继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段&#xff0c;它允许程序员在保持原有类特性的基础上进行扩展&#xff0c;增加功能&#xff0c;这样产生新的类&#xff0c;称派生类(或子类)。继承呈现了面向对象程序设计的层次结构&#xf…...

HTML5+JavaScript绘制彩虹和云朵

HTML5JavaScript绘制彩虹和云朵 彩虹&#xff0c;简称虹&#xff0c;是气象中的一种光学现象&#xff0c;当太阳光照射到半空中的水滴&#xff0c;光线被折射及反射&#xff0c;在天空上形成拱形的七彩光谱&#xff0c;由外圈至内圈呈红、橙、黄、绿、蓝、靛、紫七种颜色。事实…...

MySQL——单表查询(二)按条件查询(2)带 IN 关键字的查询

IN 关键字用于判断某个字段的值是否在指定集合中&#xff0c;如果字段的值在集合中&#xff0c;则满足条件&#xff0c;该字段所在的记录将被查询出来。其语法格式如下所示&#xff1a; SELECT *|字段名 1,字段名 2,… FROM 表名 WHERE 字段名 [NOT〕IN(元素 1,元素 2,…) 在上…...

【mysql】mysql 用户管理---创建、权限管理等等

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》&#xff1a;python零基础入门学习 《python运维脚本》&#xff1a; python运维脚本实践 《shell》&#xff1a;shell学习 《terraform》持续更新中&#xff1a;terraform_Aws学习零基础入门到最佳实战 《k8…...

本地服务器物理机中redis设置、取消密码

1.服务器物理机上redis的操作【服务器中操作】 &#xff08;1&#xff09;首先先看一下当前运行中的redis实例&#xff1a; [rootiZuf67k70ucx14s6zcv54dZ var]# ps aux | grep redis-server因为我这里有两个实例在运行&#xff0c;即物理机上的redis和docker中的redis&…...

关于xilinx的FFTIP的使用和仿真

工具&#xff1a;vivado2018.3&#xff0c;modelsim10.6d 场景&#xff1a;在进行数据进行频谱分析的时候&#xff0c;使用FPGA来完成FFT的计算可以加快数据的计算速度。 下面使用仿真完成DDS产生的数据的FFT以及IFFT。原始数据使用DDSIP产生&#xff0c;通过IP产生的波形数据…...

ant design pro 如何去保存颜色

上图 就是实现这样的效果 后端是这样的&#xff0c;这个颜色肯定是存到字符串里的 这是第一步 import mongoose, { Schema, Document } from mongoose;interface IDiscountCard extends Document {title: string;subtitle: string;image: string;shopUrl: string;bgColor: s…...

【Hadoop】建立圈内组件的宏观认识

01存储02计算03调度04其他05回忆 众多组件们构建了大规模分布式计算和存储平台。本文介绍Hadoop生态圈中各个组件的主要功能和作用&#xff0c;辅助学者理解每个组件的定位和用途&#xff0c;从而建立对圈内组件的宏观认识。梳理清楚HDFS、MapReduce、YARN、Hive、HBase、Spark…...

C++:命名空间与输入输出

目录 前言 一、命名空间 1.1 namespace的价值 1.2 namespace的定义 1.3 命名空间的使用 二、C输入&输出 前言 C是一种面向对象的计算机程序设计语言&#xff0c;‌它扩展了C语言的功能&#xff0c;‌并引入了面向对象编程的概念&#xff0c;‌如类、‌继承和多态等&a…...

Azure DevOps Server 数据库日志已满,TF30042: The database is full

Contents 1. 问题描述2. 处理方式 2.1 系统备份2.2 收缩日志2.3 恢复模式2.4 日志增长无法控制 1. 问题描述 Azure DevOps Server 作为微软的软件开发管理平台产品&#xff0c;理所当然地使用了微软的数据库软件SQL Server。 在一个大型的开发团队中&#xff0c;Azure DevOps S…...

[C#]OpenCvSharp 实现Bitmap和Mat的格式相互转换

//转为 bitmap方法一&#xff1a; Bitmap map OpenCvSharp.Extensions.BitmapConverter.ToBitmap(mat); process_pictureBox.Image map; //转为 bitmap方法二&#xff1a; Bitmap map new Bitmap(mat.ToMemoryStream()); process_pictureBox.Image map; //Image img 转为…...

【区块链+金融服务】基于区块链的供应链金融系统 | FISCO BCOS应用案例

传统供应链金融存在着信息不对称、信任问题和繁琐流程等弊端。为了解决这些问题&#xff0c;京北方搭建了基于区块链 的供应链金融系统&#xff0c;提供了更高效、透明、安全和可信的交易环境。 系 统 采 用 FISCO BCOS 为 底 层 链&#xff0c; 技 术 栈 使 用 Java 语 言 进…...

AI语言大模型商业价值深度解析

点击蓝字 关注我 随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;特别是深度学习算法的进步&#xff0c;AI语言大模型在自然语言处理领域的表现日益突出。国内外多种语言大模型如&#xff1a;OpenAi 的 ChatGpt&#xff0c;阿里通义千问&#xff0c;百度文心…...

理解DDD领域驱动设计思想

一、引言 在软件开发的广袤领域中&#xff0c;领域驱动设计&#xff08;Domain-Driven Design&#xff0c;简称 DDD&#xff09;犹如一颗璀璨的明星&#xff0c;备受瞩目。对于期望运用 DDD 开展项目的研发人员而言&#xff0c;明晰 DDD 的本质是实现其有效应用的基石。需注意…...

音频剪辑软件哪个好用?五大音频剪辑软件分享

如果你正打算在家自学视频制作&#xff0c;那么恭喜你&#xff0c;你已经踏上了一段充满魔法与惊喜的旅程&#xff01;不过&#xff0c;别忘了&#xff0c;视频的灵魂不仅仅在于画面&#xff0c;更在于那直击心灵的音效。 想象一下&#xff0c;一个精心剪辑的片段&#xff0c;…...

12.2 使用prometheus-sdk向pushgateway打点

本节重点介绍 : 使用golang sdk打prometheus4种指标&#xff0c;推送到pushgateway gauge、counter、histogram、summary的初始化4种类似的设置值的方法推送到pushgateway的方法 prometheus配置采集pushgateway&#xff0c;grafana上配大盘 golang-sdk 项目地址 https://git…...

HTTPS 详解

HTTPS 是以安全为目标的 HTTP 通道&#xff0c;它在 HTTP 中加入 SSL 层以提高数据传输的安全性。HTTP 被用于在 Web 浏览器和网站服务器之间传递信息&#xff0c;但以明文形式发送内容&#xff0c;不提供任何方式的数据加密&#xff0c;如果攻击者截取了 Web 浏览器和网站服务…...