DiT的输入,是先对输入x进行了patch,然后对t进行了时间戳编码,然后对y进行了类别编码,y就是类别。也就是说:
这个block,的输入,是两个,不仅有x,还有编码。
下面可以看出,首先,这个self.adaln——modulation模块,对编码c,进行了一个操作,得到了六个东西,这六个东西都是分开算的,有的是注意力用的,有的是MLP模块用的。
这个模块的作用,可以看出来,就是将一个,1,12维度的东西,分成了六份。
算loss的时候怎么算的呢,两个参数值都是固定的,然后,
看看DiT里面怎么算的loss
三个输入,x是原始的输入,t是时间戳,model是模型。、
KL的时候,算的是两个数据的两种分布,
从这,就能看出来,
这个,q的后验,是在算真正的值。
算均值的时候,用了x_start,算方差的时候只用了X_t,不知道为啥。
做预测,获得一个预测的,给定初始的x,这个x是x_t.
这里又困惑了,