yuangan / EAT_code

Official code for ICCV 2023 paper: "Efficient Emotional Adaptation for Audio-Driven Talking-Head Generation".
Other
269 stars 30 forks source link

关于训练收敛的问题 #22

Closed YZX-codesky closed 6 months ago

YZX-codesky commented 6 months ago

作者您好,很抱歉又来打扰您,关训练收敛方面我还有几个问题想要问问您,希望您能解答,万分感激。 1.关于训练时,此处是只使用了数据集中的前2000个数据吗,为什么只使用前2000个呀

if count % 20 == 0 :
                    print(np.array(logger.loss_list).mean(axis=0))
                logger.log_iter(losses=losses)

                if count % 2000 == 0:
                    break

2.我在训练第一阶段的代码pretrain_a2kp.py的时候,我只用了一张3090,但是我发现代码只占用了3406MB的空间,请问这是正常的吗?有办法可以调高显存占用,缩短训练时间吗?

yuangan commented 6 months ago

你好,感谢关注。

  1. 我没记错的话,dataloader的shuffle=True的情况下每轮是随机选数据的,所以不是前2000个,这里是因为数据太多,训一个epoch非常久,我想多存几轮log和ckpt观察收敛的情况。
  2. 我记得pretrain_a2kp可以调大batch size,只有后面finetune EAT的时候,batch_size需要改成和GPU数量一致。只用3G是不正常的,正常的话应该可以拉满的,不过你的batch_size调整的时候学习率最好也相应地调一下。
YZX-codesky commented 6 months ago

你好,感谢关注。

  1. 我没记错的话,dataloader的shuffle=True的情况下每轮是随机选数据的,所以不是前2000个,这里是因为数据太多,训一个epoch非常久,我想多存几轮log和ckpt观察收敛的情况。
  2. 我记得pretrain_a2kp可以调大batch size,只有后面finetune EAT的时候,batch_size需要改成和GPU数量一致。只用3G是不正常的,正常的话应该可以拉满的,不过你的batch_size调整的时候学习率最好也相应地调一下。

感谢您的解答,我仔细研究了一下代码。 此处的 he_new_driving除了exp情绪关键点之外其他的都是原始的视频的头部姿势的信息,这是为什么? 我理解的是,随机选取视频中某一帧的图片,生成的视频的其他帧。生成的其他帧的对应的头部姿势,和表情应该都来自于音频,从音频中提取。然后再将生成的视频和原始视频对比做损失。请问我的理解有问题吗?

yuangan commented 6 months ago

你好,我们的头部姿势是使用的Driven video的头部姿势,你可以再看看我们论文的结构图。