Training code for the networks described in "How far are we from solving the 2D & 3D Face Alignment problem? (and a dataset of 230,000 3D facial landmarks)" paper.
local function convBlock(numIn, numOut, order)
local cnet = nn.Sequential()
:add(batchnorm(numIn,1e-5,false))
:add(relu(true))
:add(conv(numIn,numOut/2,3,3,1,1,1,1):noBias())
:add(nn.ConcatTable()
:add(nn.Identity())
:add(nn.Sequential()
:add(nn.Sequential()
:add(batchnorm(numOut/2,1e-5,false))
:add(relu(true))
:add(conv(numOut/2,numOut/4,3,3,1,1,1,1):noBias())
)
batchnorm(numIn,1e-5,false)
Dose this statement want to set affine = false?
But in fact, four parameters (nOutput, eps, momentum, affine) are needed.
The batchnorm will have wight and bias.
batchnorm(numIn,1e-5,false) Dose this statement want to set affine = false? But in fact, four parameters (nOutput, eps, momentum, affine) are needed. The batchnorm will have wight and bias.