CycleGAN-VC模型复现,模型无法收敛
Created by: LinAurora
通过修改官方的cycleGAN模型,来复现tensorflow版本的cycleGAN-Voice conversion模型时,训练过程中判别器损失不稳定,生成器损失无法正常收敛,而相同的tensorflow版本,收敛正常。 复现时,基本上所有参数都相同,损失函数也修改的和TF版本相同,对于不同的部分如conv1d的实现或某些卷积核参数等等都已经通过修改tensorflow版本验证了不影响训练,但在paddle框架下模型的生成损失总是无法正常收敛,判别损失也不稳定。 其中,paddle的sequence_conv的stride只能为1,所以选择用conv2d实现conv1d来复现TF版本的conv1d,padding=“same”通过单独计算复现,instance_norm层用了官方代码。pixel_shuffle层重写,效果等同TF,训练器框架分别用了官方CycleGAN的和自己写的,在项目中分别是目录是paddle_GAN和paddle_GAN1,二者不同之处仅在trainer.py,最终训练过程大致相同,都无法像TF中一样正常收敛。
到底是框架本身的问题还是代码的问题?
下面是项目公开在AIstudio上的代码,因为无法在AIstudio平台安装pyworld库,只能将数据预处理部分放在本地然后上传,经过pyworld处理后的VCC数据集分为f0,sp,ap部分,已上传训练需要的sp部分。 https://aistudio.baidu.com/aistudio/projectdetail/116174