network/resnet101_3d_gcn_x5.py [139:173]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                blocks.append(("B%02d_extra"%i, GloRe_Unit(num_in=conv4_num_out, num_mid=num_mid)))
        self.conv4 = nn.Sequential(OrderedDict(blocks))

        # conv5 - x7 (x4)
        num_mid *= 2
        conv5_num_out = 2 * conv4_num_out
        self.conv5 = nn.Sequential(OrderedDict([
                    ("B%02d"%i, RESIDUAL_BLOCK(num_in=conv4_num_out if i==1 else conv5_num_out,
                                               num_mid=num_mid,
                                               num_out=conv5_num_out,
                                               stride=(1,2,2) if i==1 else (1,1,1),
                                               g=groups,
                                               use_3d=(i==2),
                                               first_block=(i==1))) for i in range(1,k_sec[5]+1)
                    ]))

        # final
        self.tail = nn.Sequential(OrderedDict([
                    ('bn', nn.BatchNorm3d(conv5_num_out, eps=1e-04)),
                    ('relu', nn.ReLU(inplace=True))
                    ]))

        self.globalpool = nn.Sequential(OrderedDict([
                        ('avg', nn.AvgPool3d(kernel_size=(4,7,7),  stride=(1,1,1))),
                        ('dropout', nn.Dropout(p=0.5)),
                        ]))
        self.classifier = nn.Linear(conv5_num_out, num_classes)

        #############
        # Initialization
        initializer.xavier(net=self)

        if pretrained:
            import torch
            load_method='inflation' # 'random', 'inflation'
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



network/resnet50_3d_gcn_x5.py [139:173]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                blocks.append(("B%02d_extra"%i, GloRe_Unit(num_in=conv4_num_out, num_mid=num_mid)))
        self.conv4 = nn.Sequential(OrderedDict(blocks))
        
        # conv5 - x7 (x4)
        num_mid *= 2
        conv5_num_out = 2 * conv4_num_out
        self.conv5 = nn.Sequential(OrderedDict([
                    ("B%02d"%i, RESIDUAL_BLOCK(num_in=conv4_num_out if i==1 else conv5_num_out,
                                               num_mid=num_mid,
                                               num_out=conv5_num_out,
                                               stride=(1,2,2) if i==1 else (1,1,1),
                                               g=groups,
                                               use_3d=(i==2),
                                               first_block=(i==1))) for i in range(1,k_sec[5]+1)
                    ]))

        # final
        self.tail = nn.Sequential(OrderedDict([
                    ('bn', nn.BatchNorm3d(conv5_num_out, eps=1e-04)),
                    ('relu', nn.ReLU(inplace=True))
                    ]))

        self.globalpool = nn.Sequential(OrderedDict([
                        ('avg', nn.AvgPool3d(kernel_size=(4,7,7),  stride=(1,1,1))),
                        ('dropout', nn.Dropout(p=0.5)),
                        ]))
        self.classifier = nn.Linear(conv5_num_out, num_classes)

        #############
        # Initialization
        initializer.xavier(net=self)

        if pretrained:
            import torch
            load_method='inflation' # 'random', 'inflation'
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



