Я пытаюсь настроить конвективную сеть. Он имеет следующую структуру (адаптировано из OverFeat):torch7: Установка скорости обучения переменных для разных уровней конвертации
net:add(SpatialConvolution(3, 96, 7, 7, 2, 2))
net:add(nn.ReLU(true))
net:add(SpatialMaxPooling(3, 3, 3, 3))
net:add(SpatialConvolutionMM(96, 256, 7, 7, 1, 1))
net:add(nn.ReLU(true))
net:add(SpatialMaxPooling(2, 2, 2, 2))
net:add(SpatialConvolutionMM(256, 512, 3, 3, 1, 1, 1, 1))
net:add(nn.ReLU(true))
net:add(SpatialConvolutionMM(512, 512, 3, 3, 1, 1, 1, 1))
net:add(nn.ReLU(true))
net:add(SpatialConvolutionMM(512, 1024, 3, 3, 1, 1, 1, 1))
net:add(nn.ReLU(true))
net:add(SpatialConvolutionMM(1024, 1024, 3, 3, 1, 1, 1, 1))
net:add(nn.ReLU(true))
net:add(SpatialMaxPooling(3, 3, 3, 3))
net:add(SpatialConvolutionMM(1024, 4096, 5, 5, 1, 1))
net:add(nn.ReLU(true))
net:add(SpatialConvolutionMM(4096, 4096, 1, 1, 1, 1))
net:add(nn.ReLU(true))
net:add(SpatialConvolutionMM(4096, total_classes, 1, 1, 1, 1))
net:add(nn.View(total_classes))
net:add(nn.LogSoftMax())
И я использую SGD как метод оптимизации со следующими параметрами:
optimState = {
learningRate = 1e-3,
weightDecay = 0,
momentum = 0,
learningRateDecay = 1e-7
}
optimMethod = optim.sgd
Я готовлю его следующим образом :
optimMethod(feval, parameters, optimState)
где:
-- 'feval' is the function with the forward and backward passes on the current batch
parameters,gradParameters = net:getParameters()
Из моих ссылок я узнал, что при тонкой настройке предварительно обученной сети рекомендуется, чтобы нижние (сверточные) слои имели более низкие скорости обучения, а более высокие уровни должны иметь относительно более высокие скорости обучения.
Я ссылался на документацию torch7 от optim/sgd, чтобы установить разные скорости обучения для каждого слоя. Оттуда я получаю эту настройку config.learningRates т. Е. Вектор индивидуальных скоростей обучения, я могу достичь того, чего хочу. Я новичок в Torch, поэтому, пожалуйста, простите меня, если это кажется глупым вопросом, но было бы очень полезно, если бы кто-нибудь мог объяснить мне, как и где создавать/использовать этот вектор, чтобы служить моей цели?
Заранее спасибо.