def __init__(self, num_features): super(GRL, self).__init__() self.model_fc = model.Resnet50Fc() # for param in self.model_fc.parameters(): # param.requires_grad=False self.bottleneck_layer1 = nn.Linear(num_features, 256) self.bottleneck_layer1.weight.data.normal_(0, 0.005) self.bottleneck_layer1.bias.data.fill_(0.1) self.bottleneck_layer = nn.Sequential(self.bottleneck_layer1, nn.ReLU(), nn.Dropout(0.5)) self.classifier_layer = nn.Linear(256, len(dset_classes)) self.classifier_layer.weight.data.normal_(0, 0.01) self.classifier_layer.bias.data.fill_(0.0) self.predict_layer = nn.Sequential(self.model_fc, self.bottleneck_layer, self.classifier_layer) self.ad_layer1 = nn.Linear(256 * len(dset_classes), 1024) self.ad_layer2 = nn.Linear(1024, 1024) self.ad_layer3 = nn.Linear(1024, 1) self.ad_layer1.weight.data.normal_(0, 0.01) self.ad_layer2.weight.data.normal_(0, 0.01) self.ad_layer3.weight.data.normal_(0, 0.3) self.ad_layer1.bias.data.fill_(0.0) self.ad_layer2.bias.data.fill_(0.0) self.ad_layer3.bias.data.fill_(0.0) self.ad_net = nn.Sequential(self.ad_layer1, nn.ReLU(), nn.Dropout(0.5), self.ad_layer2, nn.ReLU(), nn.Dropout(0.5), self.ad_layer3, nn.Sigmoid()) self.grl = ad.AdversarialLayer(high=1.0)
def __init__(self, num_features): super(Net, self).__init__() self.model_fc = model_no.Resnet50Fc() self.classifier_layer = nn.Linear(num_features, len(dset_classes)) self.classifier_layer.weight.data.normal_(0, 0.01) self.classifier_layer.bias.data.fill_(0.0) self.predict_layer = nn.Sequential(self.model_fc, self.classifier_layer)
def __init__(self, num_features): super(BSP_CDAN, self).__init__() if visda == True: self.model_fc = model.Resnet101Fc() else: self.model_fc = model.Resnet50Fc() self.bottleneck_layer1 = nn.Linear(num_features, 256) self.bottleneck_layer1.apply(init_weights) self.bottleneck_layer = nn.Sequential(self.bottleneck_layer1, nn.ReLU(), nn.Dropout(0.5)) self.classifier_layer = nn.Linear(256, len(dset_classes)) self.classifier_layer.apply(init_weights) self.predict_layer = nn.Sequential(self.model_fc, self.bottleneck_layer, self.classifier_layer)