예제 #1
0
    def __init__(
        self,
        dataset: BasicDataset,
        student: PairWiseModel,
        teacher: PairWiseModel,
        dns,
        topK=10,
        mu=0.1,
        lamda=1,
        teach_alpha=1.0,
        dynamic_sample=100,
        dynamic_start_epoch=0,
    ):
        self.rank_aware = False
        self.dataset = dataset
        self.student = student
        self.teacher = teacher.eval()
        self.RANK = None
        self.epoch = 0

        self._weight_renormalize = False
        self.mu, self.topk, self.lamda = mu, topK, lamda
        self.dynamic_sample_num = dynamic_sample
        self.dns_k = dns
        self.teach_alpha = teach_alpha
        self.start_epoch = dynamic_start_epoch
        self._generateTopK()
        self._static_weights = self._generateStaticWeights()
예제 #2
0
 def __init__(self,
              recmodel : PairWiseModel,
              config : dict):
     self.model = recmodel
     self.weight_decay = config['decay']
     self.lr = config['lr']
     self.opt = optim.Adam(recmodel.parameters(), lr=self.lr)
예제 #3
0
    def __init__(self,
                 dataset: BasicDataset,
                 student: PairWiseModel,
                 teacher: PairWiseModel,
                 dns,
                 lamda=0.5,
                 n_distill=50,
                 t1=1,
                 t2=0):
        self.student = student
        self.teacher = teacher.eval()
        self.dataset = dataset
        self.dns_k = dns

        self.strategy = "student guide"
        self.lamda = lamda
        self.n_distill = n_distill
        self.t1, self.t2 = t1, t2