LTH14 / rcg

PyTorch implementation of RCG https://arxiv.org/abs/2312.03701
MIT License
789 stars 38 forks source link

你好,我有一个8万张图片的数据集,我想用一张A100来进行训练,不用分布式训练,请问你可以告诉我要改哪些设置吗 #27

Open gzhuinjune opened 5 months ago

gzhuinjune commented 5 months ago

imagenet对我来说太大了,我想用自己的图片来进行训练,我是不是直接把八万张图片丢到train文件夹里面就可以了呢,请问一张a100够吗,我需要调整哪些别的超参数呢,谢谢您的工作,祝您一切顺利!!!

creatorcao commented 2 months ago

关于normalize,在这个codebase里的MAGE是没有normalize的,也就是by default [0, 1]: https://github.com/LTH14/rcg/blob/main/main_mage.py#L164-L169. 但是原始的VQGAN是有normalize到[-1, 1]的https://github.com/CompVis/taming-transformers/blob/master/taming/data/base.py#L51。如果你使用了原始的VQGAN code训练的VQGAN,那也需要把这里MAGE的输入也normalize到[-1, 1]。另外需要注意的是,我们在RDM以及rep-cond MAGE的训练里都hard code了moco的augmentation:https://github.com/LTH14/rcg/blob/main/rdm/models/diffusion/ddpm.py#L572-L573, [https://github.com/LTH14/rcg/blob/main/pixel_generator/mage/models_mage.py#L459-L460,也就是把[0](https://github.com/LTH14/rcg/blob/main/pixel_generator/mage/models_mage.py#L459-L460%EF%BC%8C%E4%B9%9F%E5%B0%B1%E6%98%AF%E6%8A%8A%5B0), 1]的input按照moco原本的方式进行normalization。如果你对moco训练的normalization有改变的话,这两个地方也需要相应改变。

您好,这里我有点看不清楚。MOCO那里我去掉了多的augmentation,只有resize, crop和normalize[0, 1],那RDM和rep-cond MAGE那里的MOCO需要怎么改呢?就是留下resize, crop 和normalize[0, 1]对吗?这个你说的hard code normalize = transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])我可以不改吗? 我记得我以前训练classifier我改成自己数据集的mean, std结果反而差些。 非常感谢你的耐心解答,因为考虑到训练的时长,所以我问得有点多,先谢谢了!看到你会继续在Kaiming He组,真厉害!

LTH14 commented 2 months ago

如果moco那里的normalize是 [0,1],那么RDM和rep-cond的地方使用到moco的pre-trained model的时候就不需要进行原本的default normalization(之前在RDM和rep-cond中进行的mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]的normalization是imagenet的标准normalization也是moco的default normalization)