用Pytorch解决问题(一)- 优化器

需求:现有模型A,优化器A(其初始化的待优化模型参数是A),又有一新的模型B,想使用优化器A的参数来更新其中的参数

实现:下述为不work的一种实现(参考chat老师的代码,但确实不work):

# 已有条件
net = ResNet18(100)
optimizer = optim.SGD(net.parameters(), lr=args.lr,momentum=args.momentum,weight_decay=args.weight_decay)
classifier = torch.nn.linear(512,100)

# 下述准备使用copy旧优化器
linear_optimizer = copy.deepcopy(optimizer)
linear_optimizer.params = classifier.parameters()
linear_optimizer.zero_grad()

# 手动赋值梯度
classifier.weight.grad = grads[0].data
classifier.bias.grad = grads[1].data

linear_optimizer.step()

 先把问题屯着,看看有什么办法能解决

posted @ 2023-05-27 11:46  JerryKid  阅读(28)  评论(1)    收藏  举报