output = model(x) loss = criterion(output, y) predicted = output.argmax(1) acc = (predicted == y).sum().item() / y.size(0) accuracy_epoch += acc loss_epoch += loss.item() return loss_epoch, accuracy_epoch if __name__ == "__main__": parser = argparse.ArgumentParser(description="SimCLR") config = yaml_config_hook("./config/config.yaml") for k, v in config.items(): parser.add_argument(f"--{k}", default=v, type=type(v)) args = parser.parse_args() args.device = torch.device("cuda" if torch.cuda.is_available() else "cpu") if args.dataset == "STL10": train_dataset = torchvision.datasets.STL10( args.dataset_dir, split="train", download=True, transform=TransformsSimCLR(size=args.image_size).test_transform, ) test_dataset = torchvision.datasets.STL10( args.dataset_dir,
extracted_features.extend(h.cpu().detach().numpy()) feature_vector.extend(c.cpu().detach().numpy()) labels_vector.extend(y.numpy()) if step % 20 == 0: print(f"Step [{step}/{len(loader)}]\t Computing features...") feature_vector = np.array(feature_vector) labels_vector = np.array(labels_vector) extracted_features = np.array(extracted_features) #print("Features shape {}".format(feature_vector.shape)) #print("feature extracted: ", extracted_features.shape) return feature_vector, labels_vector, extracted_features if __name__ == "__main__": parser = argparse.ArgumentParser() config = yaml_config_hook("config/config_fpi.yaml") for k, v in config.items(): parser.add_argument(f"--{k}", default=v, type=type(v)) args = parser.parse_args() device = torch.device("cuda" if torch.cuda.is_available() else "cpu") if args.dataset == "CIFAR-10": train_dataset = torchvision.datasets.CIFAR10( root=args.dataset_dir, train=True, download=True, transform=transform.Transforms( size=args.image_size).test_transform, ) test_dataset = torchvision.datasets.CIFAR10( root=args.dataset_dir, train=False,