Как параметры передаются и распределяются по модулям - Torch Lua - PullRequest
0 голосов
/ 24 февраля 2019

Мне интересно понять, как Lua передает параметры нейронной сети каждому модулю, особенно в CNN, где параметры составляют фильтры / ядра.

bottom, top = split_model(nChannel)
bottom = bottom:cuda()
top = top:cuda()

Приведенный выше код создает модельс 9 последовательными слоями SpatialConvolution -> SpatialBatchNormalization -> ReLU

local bottom_param, bottom_grad_param = bottom:getParameters()

Я предполагаю, что выше связывает bottom_param и bottom_grad_param для хранения параметров для модели

local params = torch.load(opt.model_param)

Выше загружаетФайл .t7, который уже содержит предварительно обученные параметры

bottom_param:copy(params)

В приведенной выше строке копируются предварительно обученные параметры в bottom_param, передавая параметры в модель

Мой вопрос заключается в том, каким образом параметрыпрошло.Первые 9 определяют 1-е ядро ​​3x3?

Функция split_model такова:

function split_model(nChannel)

local half_padding = 9
local bottom = nn.Sequential()
bottom:add(nn.SpatialReflectionPadding(half_padding, half_padding, half_padding, half_padding))

-- building block
local function ConvBNReLU(nInputPlane, nOutputPlane, kw, kh, pw, ph)
  pw = pw or 0
  ph = ph or 0
  bottom:add(nn.SpatialConvolution(nInputPlane, nOutputPlane, kw, kh, 1, 1, pw, ph))
  bottom:add(nn.SpatialBatchNormalization(nOutputPlane,1e-3))
  bottom:add(nn.ReLU(true))
  return bottom
end

ConvBNReLU( nChannel,64,3,3)
ConvBNReLU(64,64,3,3)--:add(nn.Dropout(0.4))
ConvBNReLU(64,64,3,3)--:add(nn.Dropout(0.4))
ConvBNReLU(64,64,3,3)--:add(nn.Dropout(0.4))
ConvBNReLU(64,64,3,3)--:add(nn.Dropout(0.4))
ConvBNReLU(64,64,3,3)--:add(nn.Dropout(0.5))
ConvBNReLU(64,64,3,3)--:add(nn.Dropout(0.4))
ConvBNReLU(64,64,3,3)--:add(nn.Dropout(0.4))

bottom:add(nn.SpatialConvolution(64, 64, 3, 3))
bottom:add(nn.SpatialBatchNormalization(64,1e-3))

local top = nn.Sequential()
top:add(nn.CMulTable())
top:add(nn.Sum(2))

return bottom, top

end

ps код не мой и работа г-на.Вэньцзе Ло

...