def test(testloader, net, criterion, epoch, use_cuda, _delta, pairs, numeval, flag, logger, viz_method): net.eval() original = [] features = [] labels = [] for batch_idx, (inputs, targets) in enumerate(testloader): if use_cuda: inputs = inputs.cuda() with torch.no_grad(): inputs_Var = Variable(inputs) enc, dec = net(inputs_Var) features += list(enc.data.cpu().numpy()) labels += list(targets) original += list(inputs.cpu().numpy()) original, features, labels = np.asarray(original).astype(np.float32), np.asarray(features).astype(np.float32), \ np.asarray(labels) U = criterion.U.data.cpu().numpy() change_in_assign = 0 assignment = -np.ones(len(labels)) if logger and epoch % 3 == 0: logger.log_images('representatives', plot_to_image(U, 'representatives', viz_method), epoch) # logs clustering measures only if sigma2 has reached the minimum (delta2) if flag: index, ari, ami, nmi, acc, n_components, assignment = computeObj( U, pairs, _delta, labels, numeval) # log to TensorBoard change_in_assign = np.abs(oldassignment - index).sum() if logger: logger.log_value('ARI', ari, epoch) logger.log_value('AMI', ami, epoch) logger.log_value('NMI', nmi, epoch) logger.log_value('ACC', acc, epoch) logger.log_value('Numcomponents', n_components, epoch) logger.log_value('labeldiff', change_in_assign, epoch) oldassignment[...] = index return features, U, change_in_assign, assignment
def test(testloader, net, criterion, epoch, use_cuda, _delta, pairs, numeval, flag): net.eval() original = [] features = [] labels = [] for batch_idx, (inputs, targets) in enumerate(testloader): if use_cuda: inputs = inputs.cuda() inputs_Var = Variable(inputs, volatile=True) enc, dec = net(inputs_Var) features += list(enc.data.cpu().numpy()) labels += list(targets) original += list(inputs.cpu().numpy()) original, features, labels = np.asarray(original).astype(np.float32), np.asarray(features).astype(np.float32), \ np.asarray(labels) U = criterion.U.data.cpu().numpy() change_in_assign = 0 # logs clustering measures only if sigma2 has reached the minimum (delta2) if flag: index, ari, ami, nmi, acc, n_components = computeObj( U, pairs, _delta, labels, numeval) # log to TensorBoard change_in_assign = np.abs(oldassignment - index).sum() if args.tensorboard: log_value('ARI', ari, epoch) log_value('AMI', ami, epoch) log_value('NMI', nmi, epoch) log_value('ACC', acc, epoch) log_value('Numcomponents', n_components, epoch) log_value('labeldiff', change_in_assign, epoch) oldassignment[...] = index return features, U, change_in_assign