VQGAN2_latent diffusion model

task1
txt2image
先根据config一层层调用

  • 先是ldm.models.diffusion.ddpm.LatentDiffusion
    里面super().init(conditioning_key=conditioning_key, *args, **kwargs)
    然后跑到DDPM类里面
    DDPM里面调用了DiffusionWrapper

  • 然后ldm.modules.diffusionmodules.openaimodel.UNetModel
    1困惑这个里面的timestepblock是干什的
    2里面有一个encoderUnetModel
    其实ddpm就相当于前半部分来获得z,一个encoder的过程
    获得一个更好,更感知压缩的情况下attention到更多的特征
    用这个ddpm的前半段取代了codebook的离散过程

  • 其中encoder是和vqgan1相同的VAE??离散化(连续的高斯?)
    ldm.models.autoencoder.AutoencoderKL

  • condition 是ldm.modules.encoders.modules.BERTEmbedder

DDIM 减少了step
不满足马尔可夫链条件下的迭代
在ldm中运行
运行txt2image文件
先执行了ddpm文件,调用了LDM方法
里面有model= DiffusionWrapper()
ddpm 中, condition-key 变成了crossattn
unet config 是 openaimodel 文件里的Unetmodel
其中 DiffusionWrapper 里面 model=txt2image.yaml里面里面的配置
第一步在openaimodel里面配置Unet(这里面有transformer)
第一阶段应该是autoencoderKL
第二阶段有条件应该是Bertembedder,这里调用了x_transformer
里面额q与kv相比
然后执行了openaimodel 文件

clip 在ldm/encoders/modules里面用到
Class FrozenCLIPEmbedder(AbstractEncoder):
“”"Uses the CLIP transformer encoder for text
请添加图片描述

先调用 diffusionWrapper 作为model
参数有 unet-config 和 conditioning-key = ‘crossattn’

请添加图片描述

diff_model_config咱也不知是啥,但是是这样调用的
请添加图片描述

openaimodel下
time_embed linear,silu,linear
其中请添加图片描述
先是一个Unetmodel 不懂modelchannle为什么是320
channel-mult 是啥???
请添加图片描述
里面用到了restblock 有时间看一下restnet bro
nn.identity 输入是啥输出是啥

restBlock,,,,是2维度的?
请添加图片描述

zero——module 是二维的????,目前还不懂在干啥请添加图片描述

什么num_head 是8 是因为 embed_dim// num_heads_channels 得8、
dim_head = ch // num_heads 得40

越来越不懂,咋回事
请添加图片描述

去看attention 的实现吧bro
现在跳到attention了

spatial transformer (空间变换)
请添加图片描述

https://blog.csdn.net/jiaojiaolou/article/details/90383340
STN的作用是想让CNN具备平移、旋转、缩放、剪切不变性,虽然说CNN中的Pooling可以让网络具备一点平移不变性,但这毕竟是隐性的,如果能让网络直接具备这样的能力岂不是更好

提到了仿射变换 将图片进行缩放平移旋转

实现两个空间向量之间的变化

用了crossattention 来完成有条件啥
其中innerdim 是320, context_dim 是320请添加图片描述

feedforward 向前传输
请添加图片描述
??? 上采样???
请添加图片描述
3个laryernorm

上面那个变换都是在openaimodel里面
resblock 变成了这样???
请添加图片描述

请添加图片描述

最后,让我们再看一下这个Unet的结构哈
请添加图片描述
请添加图片描述
用了?时间序列?
请添加图片描述
咱也不懂为啥这么设计的
也没人画个图
说清楚里面的结构
请添加图片描述
请添加图片描述
我都不信,这玩意我能学明白。。。。。
11个 TimestepEmbedSquential ??????
我真不懂了。。。。
接下来还是 Unet
middleblock 我谢谢
请添加图片描述
请添加图片描述
最后output
请添加图片描述
time2多了个upsample,好吧每个都不一样
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
我放弃,这个也有11个
把断点放到openAImodel 中的682 self.out哪里
自己看去吧请添加图片描述
请添加图片描述
溜溜,明天继续整理

day02
taming transformer 直接看VQGAN1 的代码即可!

其中vqvae中 quantize 用到了einsu,,VectorQuantizer
矢量量化器

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值