微调 Torch 模型
Finetune a Torch model
我已经在 Torch 中加载了一个模型,我想对其进行微调。现在我想重新训练网络的最后 2 层(尽管将来我可能想添加层)。我怎样才能做到这一点?我一直在寻找教程,但我还没有找到我要找的东西。有什么建议吗?
不知道我有没有看懂你的意思。如果你想离开网络,除了你想要训练(或微调)的 2 层,你必须停止你不想训练的那些的反向传播,就像这样:
for i=1, x do
c = model:get(i)
c.updateGradInput = function(self, inp, out) end
c.accGradParameters = function(self,inp, out) end
end
现在只有这个循环之外的层才会升级它们的参数。如果你想添加新层只需调用model:insert(module, position)
,你可以在这里查看Torch containers
如果这不是您想要的,请详细说明问题。
我已经在 Torch 中加载了一个模型,我想对其进行微调。现在我想重新训练网络的最后 2 层(尽管将来我可能想添加层)。我怎样才能做到这一点?我一直在寻找教程,但我还没有找到我要找的东西。有什么建议吗?
不知道我有没有看懂你的意思。如果你想离开网络,除了你想要训练(或微调)的 2 层,你必须停止你不想训练的那些的反向传播,就像这样:
for i=1, x do
c = model:get(i)
c.updateGradInput = function(self, inp, out) end
c.accGradParameters = function(self,inp, out) end
end
现在只有这个循环之外的层才会升级它们的参数。如果你想添加新层只需调用model:insert(module, position)
,你可以在这里查看Torch containers
如果这不是您想要的,请详细说明问题。