前提:
运行训练代码的时候,出现多个model,多个model在测试集上的结果均一致:
通过model.load_state()发现参数、权重值等均一致!【问题所在】
查找错误:
(1)模型储存方式
(2)数据集数量 或者传入数据集的不同性检查
(3)检查梯度
for name, param in model.named_parameters():
if param.requires_grad:
if param.grad is not None:
print("{}, gradient: {}".format(name, param.grad.mean()))
else:
print("{} has not gradient".format(name))
for name, param in model.named_parameters():
print("name:",name,"grad_requires:",param.requires_grad,"weight:",param.data,"grad_value:",param.grad)
如果 grad_value=none:
1、检查loss的 属性:grad_fn、grad 如果均为none :可能是loss脱离了模型的训练中,和模型训练没有连接起来
【解决】
(1)查看代码中是否使用的 deta