{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.12","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"nvidiaTeslaT4","dataSources":[{"sourceId":6799,"databundleVersionId":4225553,"sourceType":"competition"},{"sourceId":7254072,"sourceType":"datasetVersion","datasetId":4203283},{"sourceId":7254368,"sourceType":"datasetVersion","datasetId":4203499},{"sourceId":7257991,"sourceType":"datasetVersion","datasetId":4205995},{"sourceId":156012281,"sourceType":"kernelVersion"}],"dockerImageVersionId":30627,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":true}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import argparse\nimport os\nimport torch\nimport torch.backends.cudnn as cudnn\nimport torchvision.transforms as transforms\nimport torchvision.datasets as datasets\nos.chdir(\"/kaggle/input/mycode/AdderNet-master\")\nparser = argparse.ArgumentParser(description='PyTorch ImageNet Training')\nparser.add_argument('--dataset', type=str, default='ImageNet', choices=['cifar10','ImageNet'])\nparser.add_argument('-j', '--workers', default=4, type=int, metavar='N',\n                    help='number of data loading workers (default: 4)')\nparser.add_argument('-b', '--batch-size', default=16, type=int,\n                    metavar='N',\n                    help='mini-batch size (default: 256), this is the total '\n                         'batch size of all GPUs on the current node when '\n                         'using Data Parallel or Distributed Data Parallel')\nparser.add_argument('--data_dir', type=str,\n                    help='path to dataset',default=\"/kaggle/input/notebook6091203050/val/\")\nparser.add_argument('--model_dir', type=str,\n                    help='path to dataset',default=\"/kaggle/input/models/ResNet50-AdderNet.pth\")\nbest_acc1 = 0\nargs, unparsed = parser.parse_known_args()\n\n","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2023-12-22T04:39:17.880338Z","iopub.execute_input":"2023-12-22T04:39:17.881148Z","iopub.status.idle":"2023-12-22T04:39:17.890032Z","shell.execute_reply.started":"2023-12-22T04:39:17.881113Z","shell.execute_reply":"2023-12-22T04:39:17.889088Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def main():\n\n    # create model\n    if args.dataset == 'cifar10':\n        import resnet20\n        model = resnet20.resnet20()\n    elif args.dataset == 'ImageNet':\n        import resnet50\n        model = resnet50.resnet50()\n        \n    model = torch.nn.DataParallel(model).cuda()\n    \n    model.load_state_dict(torch.load(args.model_dir))\n\n    cudnn.benchmark = True\n\n    # Data loading code\n    \n    if args.dataset == 'cifar10':\n        val_loader = torch.utils.data.DataLoader(\n            datasets.CIFAR10(args.data_dir, train=False, transform = transforms.Compose([\n                transforms.ToTensor(),\n                transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010))\n            ])),\n            batch_size=args.batch_size, shuffle=False,\n            num_workers=args.workers, pin_memory=True)\n    elif args.dataset == 'ImageNet':\n        val_loader = torch.utils.data.DataLoader(\n            datasets.ImageFolder(args.data_dir, transforms.Compose([\n                transforms.Resize(256),\n                transforms.CenterCrop(224),\n                transforms.ToTensor(),\n                transforms.Normalize(mean=[0.485, 0.456, 0.406],\n                                         std=[0.229, 0.224, 0.225])\n            ])),\n            batch_size=args.batch_size, shuffle=False,\n            num_workers=args.workers, pin_memory=True)\n    print(\"start the process\")\n    acc1 = validate(val_loader, model)\n\n\ndef validate(val_loader, model):\n    top1 = AverageMeter()\n    top5 = AverageMeter()\n\n    model.eval()\n\n    with torch.no_grad():\n        for i, (input, target) in enumerate(val_loader):\n            input = input.cuda(non_blocking=True)\n            target = target.cuda(non_blocking=True)\n\n            # compute output\n            output = model(input)\n\n            # measure accuracy and record loss\n            acc1, acc5 = accuracy(output, target, topk=(1, 5))\n            top1.update(acc1[0], input.size(0))\n            top5.update(acc5[0], input.size(0))\n\n            print(' * Acc@1 {top1.avg:.3f} Acc@5 {top5.avg:.3f}'\n                  .format(top1=top1, top5=top5))\n\n    return top1.avg\n\n\nclass AverageMeter(object):\n    \"\"\"Computes and stores the average and current value\"\"\"\n    def __init__(self):\n        self.reset()\n\n    def reset(self):\n        self.val = 0\n        self.avg = 0\n        self.sum = 0\n        self.count = 0\n\n    def update(self, val, n=1):\n        self.val = val\n        self.sum += val * n\n        self.count += n\n        self.avg = self.sum / self.count\n\n\n\ndef accuracy(output, target, topk=(1,)):\n    \"\"\"Computes the accuracy over the k top predictions for the specified values of k\"\"\"\n    with torch.no_grad():\n        maxk = max(topk)\n        batch_size = target.size(0)\n\n        _, pred = output.topk(maxk, 1, True, True)\n        pred = pred.t()\n        correct = pred.eq(target.view(1, -1).expand_as(pred))\n\n        res = []\n        for k in topk:\n            correct_k = correct[:k].reshape(-1).float().sum(0, keepdim=True)\n            res.append(correct_k.mul_(100.0 / batch_size))\n        return res","metadata":{"execution":{"iopub.status.busy":"2023-12-22T04:39:17.892059Z","iopub.execute_input":"2023-12-22T04:39:17.892621Z","iopub.status.idle":"2023-12-22T04:39:17.915286Z","shell.execute_reply.started":"2023-12-22T04:39:17.892586Z","shell.execute_reply":"2023-12-22T04:39:17.914563Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"main()","metadata":{"execution":{"iopub.status.busy":"2023-12-22T04:39:17.916295Z","iopub.execute_input":"2023-12-22T04:39:17.916555Z"},"trusted":true},"execution_count":null,"outputs":[]}]}