def train(self): # device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") valid_evaluator = Evaluator() self.model = self.model.to(self.device) for epochIndex in range(self.epochNum): loss_train = self.one_pass_train(epochIndex) loss_overall_train, loss_emo_train = LossLogger( self.fo, 'train', loss_train, '--', epochIndex) loss_valid = valid_evaluator.evaluation(self.X_valid, self.Y_valid, self.model) loss_overall_valid, loss_emo_valid = LossLogger( self.fo, 'valid', loss_valid, '--', epochIndex) self.trainValidWritter(loss_train, loss_valid, loss_overall_train, loss_emo_train, loss_overall_valid, loss_emo_valid, epochIndex) if (self.betterSaver(loss_emo_valid) == True): break self.writter.close() self.fo.close()