PyTorch保存模型权重异常:与numpy导出结果差异显著求助
问题:torch.save保存的权重与numpy导出的权重差异极大导致GAN生成效果异常
TLDR:torch.save保存的权重与通过numpy克隆并保存为.csv的权重差异极大,加载模型后GAN生成效果退回到训练早期水平。
我正在开发一款面向EEG数据的生成对抗网络(GAN),训练过程中生成的数据效果理想,但加载Lightning checkpoint或torch.save保存的模型后,生成的数据效果仅相当于训练早期阶段的水平。
经调试发现,使用numpy导出的模型权重,与通过Lightning checkpoint或torch.save保存的权重存在显著差异,推测该差异是导致生成效果异常的原因。
此前我已在相关论坛发布问题,包含权重对比图、训练细节等信息。以下是用于对比权重的代码:
# Saving using numpy: filter_block1 = module.generator.block1.conv.weight.data.clone().flatten() filter_block2 = module.generator.block2.conv.weight.data.clone().flatten() filter_block3 = module.generator.block3.conv.weight.data.clone().flatten() np.savetxt("/path/block1_conv2.csv", filter_block1.detach().cpu().numpy()) np.savetxt("/path/block2_conv2.csv", filter_block2.detach().cpu().numpy()) np.savetxt("/path/block3_conv2.csv", filter_block3.detach().cpu().numpy()) # Saving using torch: torch.save(module.generator.state_dict(), "/path/generator.pth") torch.save(module.critic.state_dict(), "/path/critic.pth") torch.save(module.state_dict(), "/path/model.pth")
如需完整的Lightning训练步骤代码,我可随时提供。该问题已困扰我数周,恳请各位技术同仁提供帮助,以便我继续推进研究。
内容的提问来源于stack exchange,提问作者Samuel
相关产品推荐
相关产品推荐

