EAT_code icon indicating copy to clipboard operation
EAT_code copied to clipboard

No discriminator in the state-dict. Dicriminator will be randomly initialized load optimizer_a2kp failed, train it from scratch

Open YZX-codesky opened this issue 1 year ago • 5 comments

作者你好,非常感谢你优秀的工作,我在使用./ckpt/qvt_img_pca_sync_4_01_11_304.pth.tar对第二阶段进行训练的时候,出现了“No discriminator in the state-dict. Dicriminator will be randomly initialized load optimizer_a2kp failed, train it from scratch”的错误,但是我观察代码,在第一阶段训练的时候是有optimizer_a2kp 的pre-trained checkpoint的,为什么会出现这样的警告?请问是我的预训练检查点设置有问题吗?

YZX-codesky avatar Mar 29 '24 11:03 YZX-codesky

你好,这里的设置应该是为了兼容针对第一阶段的需要继续训练的情况,不会影响第二阶段的训练。a2kp的模型在emotion adaptation阶段因为加了一些EAM层,并只优化这些层,所以优化参数已经发生了改变,并不能用第一阶段的optimizer_a2kp,在这里是正常的。

yuangan avatar Mar 31 '24 15:03 yuangan

你好,这里的设置应该是为了兼容针对第一阶段的需要继续训练的情况,不会影响第二阶段的训练。a2kp的模型在emotion adaptation阶段因为加了一些EAM层,并只优化这些层,所以优化参数已经发生了改变,并不能用第一阶段的optimizer_a2kp,在这里是正常的。

万分感谢你的耐心解答,关于数据中的x["mel"]和x["sync_mel"]有什么区别哇,为什么shape不一样,sync_mel是[1, 1, 80, 16],mel是[1, 5, 1, 80, 11],其中5表示的应该是同步步长吧,为什么mel里面就没有

YZX-codesky avatar Apr 03 '24 04:04 YZX-codesky

mel是语音的梅尔频谱,是网络的输入之一。sync_mel是用来计算sync loss的。sync_mel的形状原因可以查看wav2vec这篇论文及其代码。这个的实现可以参考这里的定义使用.

yuangan avatar Apr 07 '24 08:04 yuangan

我根据代码观察,发现在提取mel时进行了裁剪,是不是每一个训练的视频数据都是裁剪成了时序长度为5的mel数据和imge数据,然后放入训练,实际训练的时候只是取了时序长度为5的视频长度部分,生成的generated["prediction"]也是5张图片,而并未使用整个视频。是这样吗? :pray:

YZX-codesky avatar Apr 09 '24 08:04 YZX-codesky

是的,因为用了wav2vec训出来的模型,为了计算sync_loss,需要一次生成5张图片,每张图片的生成又需要临近帧的特征,所以在这里提取mel时会有两重for循环。

yuangan avatar Apr 09 '24 13:04 yuangan