
Transformer
文章平均质量分 80
多恩Stone
聚焦时尚 AIGC -> https://github.com/wendashi/Cool-GenAI-Fashion-Papers
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Pytorch Lightning 进阶 2 - 正向传播和反向传播具体的代码位置
1. 正向传播在 self.step(batch) 中的模型前向计算,2.反向传播在 trainer.fit() 内部。原创 2025-06-23 17:19:15 · 628 阅读 · 0 评论 -
Pytorch Lightning 进阶 1 - 梯度检查点(Gradient Checkpointing)
梯度检查点是深度学习中的显存优化技术,1. 正向传播时,模型不会保存所有注意力图和隐藏层输出。2. 反向传播时,PyTorch会利用检查点重新计算这些值,从而减少显存占用。原创 2025-06-23 17:04:14 · 656 阅读 · 0 评论 -
【扩散模型(十二)】Break-A-Scene 可控生成,原理与代码详解(上) 原理篇
这个项目名为 “Break-A-Scene: Extracting Multiple Concepts from a Single Image”,发表于 SIGGRAPH Asia 2023,旨在从单张图像中提取多个概念,并使用自然语言引导在各种上下文中重新合成这些概念或它们的组合。一句话解释:Textual Inversion(TI) + DreamBooth(DB) + Loss(下图的 3 和 4)原创 2025-04-11 16:04:23 · 1004 阅读 · 0 评论 -
【diffusers 进阶之 PEFT 入门(四)】load_lora_weight 的踩坑总结以及解决方案
那如果之前未设置 adapter_name 时训练获得的权重,就是想用这个权重推理怎么办?因此可以写出将 lora 权重对应地更新到原模型权重上的代码,如下所示。本文作者的 lora 的 key 如下,从这里可以知道去掉。通过以下代码获取 lora 的 key。就能够对应会我们原模型的参数。此时推理即可获得正常结果。原创 2025-04-10 20:09:11 · 1074 阅读 · 0 评论 -
【diffusers 进阶(十四)】权重读取,查看 Lora 具体加在哪里和 Rank ‘秩’ 是多少?以 OminiControl 为例
读取并打印 lora_A 的输出特征数(即 rank)或者 lora_B 的输入特征数即可。打印出想要的权重后,可以清楚地看出 lora 加在哪些层上。原创 2025-04-02 20:20:28 · 912 阅读 · 0 评论 -
【Python 进阶-1】Python 上下文管理器(Context Manager),with 语句
类是一个上下文管理器(Context Manager),这是 Python 中用于资源管理的一种设计模式,通常与。这种模式允许在特定代码块中临时修改 LoRA 的行为,而不影响其他代码,是一种优雅的资源管理方式。推理与训练行为差异化,这允许在训练和推理阶段有不同的 LoRA 使用策略。Python 上下文管理器中的。原创 2025-03-25 11:27:24 · 446 阅读 · 0 评论 -
【扩散模型思考记录(三)】分类、回归与扩散模型的关联
对比维度分类问题回归问题扩散模型任务目标预测离散类别标签预测连续数值学习数据分布并生成新样本输入/输出输入:特征向量输出:类别概率输入:特征向量输出:连续值输入:含噪数据xt(x_t)xt+ 时间步 (t)输出:预测噪声ϵθϵθ损失函数交叉熵损失(CrossEntropyLoss)均方误差损失(MSELoss)均方误差损失(MSELoss,预测噪声)或变分下界损失模型结构逻辑回归、CNN、Transformer等线性回归、决策树、SVM回归等。原创 2025-03-24 15:57:10 · 1253 阅读 · 0 评论 -
【Flux 拆解(1)】CLIP 和 T5 的 Tokenizer 异同
本系列将以 Flux-dev 为例,详细拆解各个部分的细节和重点。Flux 整体框架图如下,来源于: 《Stable Diffusion 3「精神续作」FLUX.1 源码深度前瞻解读》原创 2024-10-19 15:53:22 · 3219 阅读 · 0 评论 -
【分布式训练(2)】深入理解 DeepSpeed 的 ZeRO 内存优化策略 (三阶段的区别)
在深度学习领域,分布式训练是一个重要的研究方向,它允许我们利用多个GPU来加速模型的训练过程。然而,随着模型规模的增大,单个GPU的内存限制成为了一个瓶颈。为了解决这个问题,DeepSpeed 提供了一种名为 Zero Redundancy Optimizer(简称 ZeRO)的技术,它通过不同的阶段(stage)来优化内存使用,从而使得训练更大的模型成为可能。原创 2024-10-12 21:28:13 · 1562 阅读 · 0 评论 -
【diffusers极速入门(五)】扩散模型中的 Scheduler(noise_scheduler)的作用是什么?
Scheduler 在扩散模型中扮演着重要的角色,它通过控制噪声的添加和去除,影响着模型的训练和生成效果。不同的 Scheduler 有不同的特点和适用场景,研究者可以根据具体任务选择合适的 Scheduler。原创 2024-07-29 22:25:44 · 3921 阅读 · 0 评论 -
【diffusers极速入门(四)】EMA 操作是什么?
EMA模型:让模型更稳定、更泛化EMA(Exponential Moving Average,指数移动平均)模型在深度学习中常用于存储模型可学习参数的局部平均值。可以把它想象成一个“影子模型”,这个影子模型的参数会随着原模型的训练不断更新,但更新的方式不是直接复制,而是以指数衰减的方式逐渐向原模型的参数靠拢。EMA模型是一种简单而有效的技术,可以提高深度学习模型的性能。通过维护模型参数的指数移动平均,EMA模型可以帮助模型找到更好的局部最小值,提高模型的稳定性和泛化能力。原创 2024-07-29 21:34:21 · 1741 阅读 · 0 评论 -
【扩散模型(六)】Stable Diffusion 3 diffusers 源码详解1-推理代码-文本处理部分
下图为《Scaling Rectified Flow Transformers for High-Resolution Image Synthesis》 (ICML 2024 )中的 SD3 架构图。原创 2024-07-19 16:12:11 · 2631 阅读 · 2 评论 -
【手撕代码(1)】Transformer 核心操作之一,nn.LayerNorm 的实现
LN 是对单个数据的指定维度进行 Normalization (归一化)处理,且指定的维度至少得包括最后一个维度。原创 2024-07-19 13:28:58 · 1229 阅读 · 0 评论 -
【扩散模型(五)】IP-Adapter 源码详解3-推理代码
这里以中最基础的以图生图(Image Variations)为例:输入处理:对 img prompt 和 txt prompt 分别先得到 embedding 后再送入 SD 的 pipeline;过 Unet:与一般输入 txt prompt 类似,通过 Unet 的各个模块;Unet 中的 CA:对于 img prompt 部分需要拆出来,单独过针对性的 k (to_k_ip)和 v(to_v_ip)。原创 2024-07-17 20:43:56 · 2289 阅读 · 1 评论 -
【扩散模型(四)】IP-Adapter 源码详解2-训练核心(cross-attention)
本文通过详细的结构图和相关代码片段介绍了 IP-Adapter 训练代码的核心部分,下篇则介绍其推理代码。原创 2024-07-17 16:20:59 · 3359 阅读 · 2 评论 -
【扩散模型(三)】IP-Adapter 源码详解1-训练输入(image projection)
本文详解了IP-Adapter 训练源码中的输入部分,下篇则详解核心部分,针对图像输入的 Cross-Attention。↩︎。原创 2024-07-05 14:49:50 · 3113 阅读 · 3 评论 -
【可控图像生成系列论文(四)】IP-Adapter 具体是如何训练的?1公式篇
IP-Adapter 的结构和 SD 的差别不是特别大,可以参考【扩散模型(二)】中的结构图进行快速理解,本文则将详细介绍其 IP-Adapter 的训练过程。IP-Adapter 的训练目标和 SD 的原始训练目标一致,但由于仅仅训练投影网络和适配模块(Image prompt 输入的 cross attention),可训练参数量非常轻量化(仅 22M)。↩︎↩︎↩︎↩︎↩︎↩︎↩︎需要注意的是,仅使用图像提示也能很好地指导最终生成,因此也可以在没有文本提示的情况下训练模型。原创 2024-06-25 20:07:21 · 2595 阅读 · 4 评论 -
【扩散模型(一)】Stable Diffusion中的重建分支(reconstruction branch)和条件分支(condition branch)
重建分支负责从噪声中逐步重建出清晰的图像。条件分支则引入额外的信息或条件,指导图像的生成过程,使得生成结果符合特定的要求。这种结构使得 Stable Diffusion 模型既能够生成高质量的图像,又能够根据特定的条件生成符合要求的图像。原创 2024-06-24 21:35:25 · 1891 阅读 · 0 评论 -
【AIGC 概念理解】Zero-Shot,One-Shot,Few-Shot,In-Context Learning,Tuning-Free/Training-Free/Inference-Only
Zero-shot learning是一种极端的少样本学习()方法,它使得模型能够在完全没有见过目标类样本的情况下进行预测。模型通过在训练阶段学习到的特征和类描述之间的关系来实现这一点。原创 2024-06-23 17:13:18 · 6591 阅读 · 5 评论 -
【diffusers极速入门(三)】生成的图像尺寸与 UNet 和 VAE 之间的关系
UNet 是一种卷积神经网络架构,最初设计用于生物医学图像分割。其结构类似于一个对称的 U 字形,由编码器(下采样)和解码器(上采样)组成。编码器逐步提取图像特征并缩小空间维度,解码器则将这些特征还原到原始的空间维度,同时逐步增加分辨率。对称结构:编码器和解码器对称分布。跳跃连接:直接将编码器的中间层输出传递到解码器的对应层,保留了高分辨率特征。多尺度特征提取:在不同尺度上提取特征,提升了网络对细节的捕捉能力。VAE 变分自编码器是一种生成模型,通过学习输入数据的潜在表示来生成新数据。编码器。原创 2024-06-20 16:57:01 · 3909 阅读 · 0 评论 -
【Triton Inference Server 多输入|多输出|无输出】如何用 triton_client.infer 调用多输入、多输出的模型进行推理呢?
本文介绍了如何在多输入的情况下,实现 tritonclient 的 .infer。原创 2024-06-11 14:12:21 · 1403 阅读 · 0 评论 -
【TensorRT 多输入】trtexec 如何对多输入的 onnx 模型进行序列化(转化)?
通过正确指定输入的形状和动态范围,可以使用trtexec将多输入的 ONNX 模型成功转换为 TensorRT 引擎。在遇到问题时,检查形状格式和模型的批处理维度是解决问题的关键。原创 2024-06-11 14:03:10 · 1863 阅读 · 0 评论 -
【官方文档解读】torch.jit.script 的使用,并附上官方文档中的示例代码
将函数或nn.Module脚本化,会检查源代码,并使用 TorchScript 编译器将其编译为 TorchScript 代码,并返回一个或。TorchScript 是 Python 语言的一个子集,因此并不是所有的 Python 功能都能在其中使用,但我们提供了足够的功能来对张量进行计算和执行控制相关操作。完整指南请参阅 TorchScript 语言参考。原创 2024-06-04 20:27:08 · 4289 阅读 · 2 评论 -
【SVG 生成系列论文(九)】如何通过文本生成 svg logo?IconShop 模型推理代码详解
本文将详细拆解 IconShop 的模型结构和对应开源代码。上篇有提到过模型架构如下所示,本篇则从代码的逻辑进行解释,主要是中的sample以及forward两个函数。原创 2024-06-03 21:41:54 · 1190 阅读 · 0 评论 -
【已解决】CLIP 的 textencoder 部分 .pt 转化 onnx 模型没有输入节点 [ONNXRuntimeError] : 2 : INVALID_ARGUMENT : Invalid
(1)通过 onnx 的可以找到转化时定义的模型输入,示例代码如下# 加载 ONNX 模型# 打印模型输入定义列表print("ONNX 模型的输入定义:")input。原创 2024-05-23 10:32:59 · 2202 阅读 · 0 评论 -
【已解决】ONNXRuntimeError 9 NOT_IMPLEMENTED Could not find an implementation for ArgMax(13) node with
这里的范围 0 到 49408 的 token 输入通常来自于 CLIP 模型的文本 tokenization 过程。CLIP 模型中的文本输入需要经过 tokenization,以便将每个词转换为一个唯一的 token ID。在对 CLIP 模型的文本 encoder 模块从 .pt 到 .onnx 的转化过程中,遇到报错。遇到的问题大概率是由于ONNX Runtime不支持模型中的ArgMax操作的。另外,也可以尝试在模型外部实现ArgMax操作,并将结果传递给网络。原创 2024-05-23 09:48:56 · 2102 阅读 · 0 评论 -
CLIP 的 text encoder 能输入多少个单词?
设置为 77 表示模型的输入长度限制为 77 个 token。77 个 token 不等同于 77 个单词,因为一个单词可能会被拆分成多个 token。实际的单词数量会少于 77 个,具体取决于句子的复杂度和分词方式。通常情况下,77 个 token 可以容纳大约 70 个左右的单词,这取决于句子的内容和复杂度。为了在实际应用中得到精确的单词数量与 token 数量的关系,可以对输入文本进行 tokenization 并观察其输出。通过这种方式,可以更好地理解模型的输入限制。原创 2024-05-22 19:49:13 · 3563 阅读 · 6 评论 -
【保姆级教程附代码】Pytorch (.pth) 到 TensorRT (.plan) 模型转化全流程
那么恭喜你的 .onnx 大概率是可以转化到 .plan 的!当然这里也有些坑,比如明明是显存不够错误,但日志里完全没提 oom,而是说节点问题。。。原创 2024-04-03 21:23:43 · 2171 阅读 · 0 评论 -
ubuntu 中用 conda install xformers 报错包不匹配【Could not solve for environment specs The following package】
复现论文时,在 ubuntu 中使用 conda install 如下 bash 命令行就会报错原创 2024-01-15 19:39:18 · 4534 阅读 · 5 评论 -
【权重小技巧(1)】.pt文件无法打开或乱码?如何查看.pt文件的具体内容?
复现论文 GTM-Transformer 过程中的数据集直接用 vscode 打开的效果没法看import torch # Load category and color encodingscat_dict = torch.load('C:/自己替换/category_labels.pt')for k, v in cat_dict.items(): # k 参数名 v 对应参数值 print(k, v)运行结果图:参考博客:https://blog.csdn..原创 2022-04-07 17:52:40 · 19716 阅读 · 0 评论