• The point 1

    • The following picture is a flow chart of the entire resnet26. We need to remember that we are typing in a fixed size 224 * 224

resnet26

conv7x7

block1(conv1x1-64,conv3x3-64,conv1x1-256)

block2(conv1x1-64,conv3x3-64,conv1x1-256)

block3(conv1x1-128,conv3x3-128,conv1x1-512)

block4(conv1x1-128,conv3x3-128,conv1x1-512)

block5(conv1x1-256,conv3x3-256,conv1x1-1024)

block6(conv1x1-256,conv3x3-256,conv1x1-1024)

block7(conv1x1-512,conv3x3-512,conv1x1-2048)

block8(conv1x1-512,conv3x3-512,conv1x1-2048)

fc

  • The point 2

    • The H * W that we use is achieved by the convolution of the stride = 2 to become H/2 * W/2
    • But the soul code that triggers down-sampling is inchannels! = block.expansion * out_chans
  • The point 3

    • The stride of the first block in our first layer is 1, and the stride of the first block in the other layers is 2