Feature extraction
Closed this issue · 1 comments
Finspire13 commented
Hi, thanks for the great codebase.
Could you kindly provide the code to extract features from custom videos using pre-trained models?
deepcs233 commented
Hi, you can add code like this at the end of the function evaluate to help extract features:
if self.inference_only:
losses.update(0.0, num)
for i in range(num):
idx = inputs[1][i].detach().cpu().item()
logit = output[i].detach().cpu().numpy().tolist()
label = int(np.argmax(logit))
res = {
'idx': idx,
'logit': logit,
'label': label
}
writer.write(json.dumps(res, ensure_ascii=False) + '\n')
writer.flush()
else:
loss = self.criterion(output, inputs[1])
losses.update(loss.item(), num)
and add code like this at function evaluate, a fter self.model.cuda().eval()
if self.inference_only:
test_loader = self.data_loaders['test']
if self.rank == 0:
if not os.path.exists(os.path.join(self.work_dir, 'results')):
os.mkdir(os.path.join(self.work_dir, 'results'))
res_file = os.path.join(self.work_dir, 'results', 'results.txt.rank%d' % self.rank)
writer = open(res_file, 'w')
else:
test_loader = self.data_loaders['val']