从 torch7 中的检查点恢复 CNN 训练
Resuming Training of CNN from checkpoint in torch7
我正在训练 CNN。在总纪元结束时,我实现了大约 0.001 l2 损失并保存了一个检查点。现在,当我想恢复训练时,我加载了检查点,开始时的错误大于 0.008。
以下是我保存检查点的方式:
paths.mkdir('checkpointsR3')
parametersR, gradParametersR = nil, nil -- nil them to avoid spiking memory
if epoch % 50 == 0 then
util.save('checkpointsR3/' .. opt.name .. '_' .. (epoch+1000) .. '_net_R.t7', netR, opt.gpu)
end
这是我加载检查点的方式:
-- load Residual Learner
assert(opt.net ~= '', 'provide a generator model')
netR = util.load(opt.net, opt.gpu)
netR:evaluate()
该实用程序是直接从 soumith chintala's dcgan.torch 使用的 lua 文件。
我想知道我哪里出错了,为什么 l2 损失比我在那个检查点训练它时更高。我检查过我正在加载最训练有素的检查点,但我仍然遇到更高的错误。
知道了。
这是一个错误:
netR:evaluate()
此处的 torch 文档 Documentation 指出,如果要恢复训练,应使用 training()
而不是 evaluate()
,因为它初始化 BatchNormalization
层的方式不同用于训练和测试。
我正在训练 CNN。在总纪元结束时,我实现了大约 0.001 l2 损失并保存了一个检查点。现在,当我想恢复训练时,我加载了检查点,开始时的错误大于 0.008。
以下是我保存检查点的方式:
paths.mkdir('checkpointsR3')
parametersR, gradParametersR = nil, nil -- nil them to avoid spiking memory
if epoch % 50 == 0 then
util.save('checkpointsR3/' .. opt.name .. '_' .. (epoch+1000) .. '_net_R.t7', netR, opt.gpu)
end
这是我加载检查点的方式:
-- load Residual Learner
assert(opt.net ~= '', 'provide a generator model')
netR = util.load(opt.net, opt.gpu)
netR:evaluate()
该实用程序是直接从 soumith chintala's dcgan.torch 使用的 lua 文件。
我想知道我哪里出错了,为什么 l2 损失比我在那个检查点训练它时更高。我检查过我正在加载最训练有素的检查点,但我仍然遇到更高的错误。
知道了。 这是一个错误:
netR:evaluate()
此处的 torch 文档 Documentation 指出,如果要恢复训练,应使用 training()
而不是 evaluate()
,因为它初始化 BatchNormalization
层的方式不同用于训练和测试。