eval_video.py [57:92]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        self.use_bn = use_bn
        self.use_dropout = use_dropout
        self.use_l2_norm = use_l2_norm

        message = 'Classifier to %d classes;' % (num_classes)
        if use_dropout: message += ' + dropout %f' % dropout
        if use_l2_norm: message += ' + L2Norm'
        if use_bn: message += ' + final BN'
        print(message)

        if self.use_bn:
            print("Adding BN to Classifier")
            self.final_bn = nn.BatchNorm1d(num_ftrs)
            self.final_bn.weight.data.fill_(1)
            self.final_bn.bias.data.zero_()
            self.linear_layer = torch.nn.Linear(num_ftrs, num_classes)
            self._initialize_weights(self.linear_layer)
            self.classifier = torch.nn.Sequential(
                self.final_bn,
                self.linear_layer
            )
        else:
            self.classifier = torch.nn.Linear(num_ftrs, num_classes)
            self._initialize_weights(self.classifier)
        if self.use_dropout:
            self.dropout = nn.Dropout(dropout)
    
    def _initialize_weights(self, module):
        for name, param in module.named_parameters():
            if 'bias' in name:
                nn.init.constant_(param, 0.0)
            elif 'weight' in name:
                nn.init.orthogonal_(param, 1)
    
    def forward(self, x):
        x = self.base(x).squeeze()
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



eval_video.py [117:154]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        self.use_bn = use_bn
        self.use_dropout = use_dropout
        self.use_l2_norm = use_l2_norm


        message = 'Classifier to %d classes;' % (num_classes)
        if use_dropout: message += ' + dropout %f' % dropout
        if use_l2_norm: message += ' + L2Norm'
        if use_bn: message += ' + final BN'
        print(message)

        if self.use_bn:
            print("Adding BN to Classifier")
            self.final_bn = nn.BatchNorm1d(num_ftrs)
            self.final_bn.weight.data.fill_(1)
            self.final_bn.bias.data.zero_()
            self.linear_layer = torch.nn.Linear(num_ftrs, num_classes)
            self._initialize_weights(self.linear_layer)
            self.classifier = torch.nn.Sequential(
                self.final_bn,
                self.linear_layer
            )
        else:
            self.classifier = torch.nn.Linear(num_ftrs, num_classes)
            self._initialize_weights(self.classifier)
        if self.use_dropout:
            self.dropout = nn.Dropout(dropout)
    
    def _initialize_weights(self, module):
        for name, param in module.named_parameters():
            if 'bias' in name:
                nn.init.constant_(param, 0.0)
            elif 'weight' in name:
                nn.init.orthogonal_(param, 1)
    
    def forward(self, x):
        # Encode
        x = self.base(x).squeeze()
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



