network/resnet101_3d_gcn_x5.py [85:137]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                    5: 3  }

        # conv1 - x112 (x16)
        conv1_num_out = 32
        self.conv1 = nn.Sequential(OrderedDict([
                    ('conv', nn.Conv3d( 3, conv1_num_out, kernel_size=(3,5,5), padding=(1,2,2), stride=(1,2,2), bias=False)),
                    ('bn', nn.BatchNorm3d(conv1_num_out, eps=1e-04)),
                    ('relu', nn.ReLU(inplace=True)),
                    ('max_pool', nn.MaxPool3d(kernel_size=(1,3,3), padding=(0,1,1), stride=(1,2,2))),
                    ]))

        # conv2 - x56 (x16)
        num_mid = 64
        conv2_num_out = 256
        self.conv2 = nn.Sequential(OrderedDict([
                    ("B%02d"%i, RESIDUAL_BLOCK(num_in=conv1_num_out if i==1 else conv2_num_out,
                                               num_mid=num_mid,
                                               num_out=conv2_num_out,
                                               stride=(1,1,1) if i==1 else (1,1,1),
                                               g=groups,
                                               first_block=(i==1))) for i in range(1,k_sec[2]+1)
                    ]))

        # conv3 - x28 (x8)
        num_mid *= 2
        conv3_num_out = 2 * conv2_num_out
        blocks = []
        for i in range(1,k_sec[3]+1):
            use_3d = bool(i % 2)
            blocks.append(("B%02d"%i, RESIDUAL_BLOCK(num_in=conv2_num_out if i==1 else conv3_num_out,
                                                     num_mid=num_mid,
                                                     num_out=conv3_num_out,
                                                     stride=(2,2,2) if i==1 else (1,1,1),
                                                     use_3d=use_3d,
                                                     g=groups,
                                                     first_block=(i==1))))
            if i in [1,3]:
                blocks.append(("B%02d_extra"%i, GloRe_Unit(num_in=conv3_num_out, num_mid=num_mid)))
        self.conv3 = nn.Sequential(OrderedDict(blocks))

        # conv4 - x14 (x8)
        num_mid *= 2
        conv4_num_out = 2 * conv3_num_out
        blocks = []
        for i in range(1,k_sec[4]+1):
            use_3d = bool(i % 2)
            blocks.append(("B%02d"%i, RESIDUAL_BLOCK(num_in=conv3_num_out if i==1 else conv4_num_out,
                                                     num_mid=num_mid,
                                                     num_out=conv4_num_out,
                                                     stride=(1,2,2) if i==1 else (1,1,1),
                                                     use_3d=use_3d,
                                                     g=groups,
                                                     first_block=(i==1))))
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



network/resnet50_3d_gcn_x5.py [85:137]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                    5: 3  }

        # conv1 - x112 (x16)
        conv1_num_out = 32
        self.conv1 = nn.Sequential(OrderedDict([
                    ('conv', nn.Conv3d( 3, conv1_num_out, kernel_size=(3,5,5), padding=(1,2,2), stride=(1,2,2), bias=False)),
                    ('bn', nn.BatchNorm3d(conv1_num_out, eps=1e-04)),
                    ('relu', nn.ReLU(inplace=True)),
                    ('max_pool', nn.MaxPool3d(kernel_size=(1,3,3), padding=(0,1,1), stride=(1,2,2))),
                    ]))

        # conv2 - x56 (x16)
        num_mid = 64
        conv2_num_out = 256
        self.conv2 = nn.Sequential(OrderedDict([
                    ("B%02d"%i, RESIDUAL_BLOCK(num_in=conv1_num_out if i==1 else conv2_num_out,
                                               num_mid=num_mid,
                                               num_out=conv2_num_out,
                                               stride=(1,1,1) if i==1 else (1,1,1),
                                               g=groups,
                                               first_block=(i==1))) for i in range(1,k_sec[2]+1)
                    ]))

        # conv3 - x28 (x8)
        num_mid *= 2
        conv3_num_out = 2 * conv2_num_out
        blocks = []
        for i in range(1,k_sec[3]+1):
            use_3d = bool(i % 2)
            blocks.append(("B%02d"%i, RESIDUAL_BLOCK(num_in=conv2_num_out if i==1 else conv3_num_out,
                                                     num_mid=num_mid,
                                                     num_out=conv3_num_out,
                                                     stride=(2,2,2) if i==1 else (1,1,1),
                                                     use_3d=use_3d,
                                                     g=groups,
                                                     first_block=(i==1))))
            if i in [1,3]:
                blocks.append(("B%02d_extra"%i, GloRe_Unit(num_in=conv3_num_out, num_mid=num_mid)))
        self.conv3 = nn.Sequential(OrderedDict(blocks))
        
        # conv4 - x14 (x8)
        num_mid *= 2
        conv4_num_out = 2 * conv3_num_out
        blocks = []
        for i in range(1,k_sec[4]+1):
            use_3d = bool(i % 2)
            blocks.append(("B%02d"%i, RESIDUAL_BLOCK(num_in=conv3_num_out if i==1 else conv4_num_out,
                                                     num_mid=num_mid,
                                                     num_out=conv4_num_out,
                                                     stride=(1,2,2) if i==1 else (1,1,1),
                                                     use_3d=use_3d,
                                                     g=groups,
                                                     first_block=(i==1))))
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



