MCPcopy Create free account
hub / github.com/VisionRush/DeepFakeDefenders / val_multi_class

Method val_multi_class

core/mengine.py:117–167  ·  view source on GitHub ↗
(self, val_loader, epoch_idx)

Source from the content-addressed store, hash-verified

115 return top1, loss, self.lr_
116
117 def val_multi_class(self, val_loader, epoch_idx):
118 np.set_printoptions(suppress=True)
119 starttime = datetime.datetime.now()
120 # switch to train mode
121 self.netloc_.eval()
122 self.loss_meter_.reset()
123 self.top1_meter_.reset()
124 self.all_probs = []
125 self.all_labels = []
126 # eval
127 with torch.no_grad():
128 val_loader = tqdm(val_loader, desc='valid', ascii=True)
129 for imgs_idx, (imgs_tensor, imgs_label, _, _) in enumerate(val_loader):
130 # set cuda
131 imgs_tensor = imgs_tensor.cuda()
132 imgs_label = imgs_label.cuda()
133 # calc forward
134 preds = self.netloc_(imgs_tensor)
135 # calc acc & loss
136 loss = self.criterion_(preds, imgs_label)
137 # accumulate loss & acc
138 acc1 = simple_accuracy(preds, imgs_label)
139
140 outputs_scores = nn.functional.softmax(preds, dim=1)
141 outputs_scores = torch.cat((outputs_scores, imgs_label.unsqueeze(-1)), dim=-1)
142
143 if self.DDP:
144 loss = reduce_tensor(loss, self.world_size)
145 acc1 = reduce_tensor(acc1, self.world_size)
146 outputs_scores = gather_tensor(outputs_scores, self.world_size)
147
148 outputs_scores, label = outputs_scores[:, -2], outputs_scores[:, -1]
149 self.all_probs += [float(i) for i in outputs_scores]
150 self.all_labels += [ float(i) for i in label]
151 self.loss_meter_.update(loss.item())
152 self.top1_meter_.update(acc1.item())
153 # eval
154 top1 = self.top1_meter_.mean
155 loss = self.loss_meter_.mean
156 auc = roc_auc_score(self.all_labels, self.all_probs)
157
158 endtime = datetime.datetime.now()
159 if self.local_rank == 0:
160 print('log: epoch-%d, val_top1 is %f, val_loss is %f, auc is %f, time is %d' % (
161 epoch_idx, top1, loss, auc, (endtime - starttime).seconds))
162
163 # update lr
164 self.scheduler_.step()
165
166 # return
167 return top1, loss, auc
168
169 def val_ema(self, val_loader, epoch_idx):
170 np.set_printoptions(suppress=True)

Callers 2

main_train.pyFile · 0.80

Calls 5

simple_accuracyFunction · 0.90
reduce_tensorFunction · 0.85
gather_tensorFunction · 0.85
updateMethod · 0.80
resetMethod · 0.45

Tested by

no test coverage detected