【发布时间】:2022-01-11 14:02:21
【问题描述】:
假设要使用两个模型:X 和 Y。数据依次通过 X 和 Y。仅模型 Y 的参数需要针对模型 Y 的输出计算的损失进行优化。是否如下sn -p 正确执行此要求。我需要回答的几个具体问题:
-
with torch.no_grad()到底是做什么的? - 由于只有模型 Y 的参数在优化器中注册,我们还需要冻结模型 X 以使其正确还是只需要减少计算负载?
- 更一般地说,我想解释一下计算图和反向传播在存在
with torch.no_grad()或通过将相应的requires_grad参数设置为 False 时冻结某些层时的行为。 - 还请评论我们是否可以立即冻结网络中的非连续层。
optimizer = AdamW(model_Y.parameters(), lr= , eps= , ...)
optimizer.zero_grad()
with torch.no_grad():
A = model_X(data)
B = model_Y(A)
loss = some_function(B)
loss.backward()
optimizer.step()
【问题讨论】:
标签: python-3.x pytorch gradient-descent