You need to enable JavaScript to run this app. 使用pytorch-CycleGAN-and-pix2pix训练的模型测试时出现Missing key错误
优惠活动
大模型
产品
解决方案
定价
更多

使用pytorch-CycleGAN-and-pix2pix训练的模型测试时出现Missing key错误

问题原因

你遇到的是PyTorch模型权重与实例化网络结构不匹配的报错,核心原因是测试时的网络结构参数和训练时不一致,导致权重的键名对应不上,具体错误点如下:

  • 归一化配置不匹配:训练时使用norm: batch,但测试时最终生效的配置为norm: instance,BatchNorm层和InstanceNorm层的位置、索引不同,直接导致权重键的序号偏移,就是你看到的Missing key和Unexpected key报错的来源。
  • 模型类型参数冲突:训练使用的是model: cycle_gan,你测试启动命令错误添加了--model pix2pix参数,虽然最终生效配置是cycle_gan,但参数冲突会导致网络结构初始化异常。
  • 配置参数未生效:你在测试命令中设置的--direction BtoA、--load_size 286、--norm batch都没有在最终运行配置中生效,说明参数传递存在问题。

解决方案

测试时所有和网络结构相关的参数必须和训练配置完全一致,将测试启动命令替换为以下内容即可:

python3 test.py --dataroot ./datasets/datasets/boundedwalls_50_0.1 --name cycbw50 --model cycle_gan --netG resnet_9blocks --direction AtoB --dataset_mode aligned --norm batch --load_size 286 --no_dropout

如果需要实现B到A方向的推理,只需将--direction AtoB修改为--direction BtoA即可,运行后先检查输出的配置列表,确认norm、model、direction三个参数和预期一致再运行。
如果需要单张图像推理,在上述命令基础上添加--num_test 1参数,同时将dataroot指向仅存放单张待推理图像的文件夹即可。
如果临时需要跳过权重键不匹配的校验,可以在net.load_state_dict(state_dict)代码处修改为net.load_state_dict(state_dict, strict=False),该方法仅作为临时验证方案,不建议长期使用。

内容的提问来源于stack exchange,提问作者Thijser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 21:24:07