Closed xuyu666 closed 9 months ago
更新内容: vae的采样代码不可放在循环代码外,为了保证每次采样的随机性。
更正后如下:
速度对比:
@xuyu666 请问能看看改进后的完整代码吗?image_transformed没有定义
对于这个情况,我的理解是过vae encoder这段代码可以移出循环外,因为权重和输入都没有改变。
哈罗。这里其实移出循环的话还是会跟原来实现上有所不一样。 这是因为 1)对于你编辑的正方形的图片,image_transforms没问题。但如果编辑的是一个长方形的图片,你只apply一次image_transforms的话,他就只crop了一块正方形区域进行训练。但我们希望的是每次crop不同的正方形区域训练,这样才能更好的维持原图的identity。 2)虽然vae参数是fixed的,但是每次vae的forward之后都会有一个sampling的过程(具体就是latent_dist.sample()那行代码)。这里也是会在训练的时候提供多样性的。
这个issue我暂时关闭了哈,有问题的话可以reopen我们再讨论
在lora_utils.py文件中,将这段代码移出“Lora training循环”中,貌似可提高速度的同时不影响精度~
实验环境:
原始: 代码优化后:
Res矩阵(应该数值裁剪的差距):