コード例 #1
0
ファイル: benchmark.py プロジェクト: ajayarunachalam/glasses
def benchmark(model: nn.Module,
              transform,
              batch_size=64,
              device=device,
              fast: bool = False):

    valid_dataset = ImageNet(root="/home/zuppif/Downloads/ImageNet",
                             split="val",
                             transform=transform)

    valid_loader = torch.utils.data.DataLoader(
        valid_dataset,
        batch_size=batch_size,
        shuffle=False,
        num_workers=12,
        pin_memory=True,
    )

    evaluator = ImageNetEvaluator(model_name="test",
                                  paper_arxiv_id="1905.11946")
    model.eval().to(device)

    num_batches = int(
        math.ceil(len(valid_loader.dataset) / float(valid_loader.batch_size)))

    start = time.time()

    with torch.no_grad():
        pbar = tqdm(np.arange(num_batches), leave=False)
        for i_val, (images, labels) in enumerate(valid_loader):

            images = images.to(device)
            labels = torch.squeeze(labels.to(device))

            net_out = model(images)

            image_ids = [
                get_img_id(img[0]) for img in
                valid_loader.dataset.imgs[i_val *
                                          valid_loader.batch_size:(i_val + 1) *
                                          valid_loader.batch_size]
            ]
            evaluator.add(dict(zip(image_ids, list(net_out.cpu().numpy()))))
            pbar.set_description(f"f1={evaluator.top1.avg:.2f}")
            pbar.update(1)
            if fast:
                break
        pbar.close()
    stop = time.time()
    if fast:
        return evaluator.top1.avg, None, None
    else:
        res = evaluator.get_results()
        return res["Top 1 Accuracy"], res["Top 5 Accuracy"], stop - start
コード例 #2
0
ファイル: sotabench.py プロジェクト: lucasb-eyer/big_transfer
def run_eval(model, data, loader, name):
    evaluator = ImageNetEvaluator(
        model_name=name,
        paper_arxiv_id='1912.11370',
        paper_results=PAPER_RESULTS.get(name),
    )

    with torch.no_grad():
        for i, (x, _) in enumerate(loader):
            print(f'\rEvaluating batch {i}/{len(loader)}', flush=True, end='')
            x = x.to(device='cuda', non_blocking=True)
            y = model(x).cpu().numpy()

            bs = loader.batch_size
            evaluator.add({
                get_img_id(data, i * bs + j): list(logits)
                for j, logits in enumerate(y)
            })

            if evaluator.cache_exists:
                break

    for k, v in evaluator.save().to_dict().items():
        print(f"{k}: {v}")
コード例 #3
0
    batch_size = m['batch_size']
    loader = create_loader(
        dataset,
        input_size=data_config['input_size'],
        batch_size=batch_size,
        use_prefetcher=True,
        interpolation=data_config['interpolation'],
        mean=data_config['mean'],
        std=data_config['std'],
        num_workers=6,
        crop_pct=data_config['crop_pct'],
        pin_memory=True)

    evaluator = ImageNetEvaluator(
        root=DATA_ROOT,
        model_name=m['paper_model_name'],
        paper_arxiv_id=m['paper_arxiv_id'],
        model_description=m.get('model_description', None),
    )
    model.cuda()
    model.eval()
    with torch.no_grad():
        # warmup
        input = torch.randn((batch_size,) + data_config['input_size']).cuda()
        model(input)

        bar = tqdm(desc="Evaluation", mininterval=5, total=50000)
        evaluator.reset_time()
        sample_count = 0
        for input, target in loader:
            output = model(input)
            num_samples = len(output)
コード例 #4
0
ファイル: sotabench.py プロジェクト: wdings/Faster-RCNN
from sotabencheval.image_classification import ImageNetEvaluator

evaluator = ImageNetEvaluator(
    # automatically compare to this paper
    model_name='ResNeXt-101-32x8d',
    paper_arxiv_id='1611.05431'
)

predictions = ... # use your model to make predictions

evaluator.add(predictions)
evaluator.save()
コード例 #5
0
    download=True,
)

test_loader = DataLoader(
    test_dataset,
    batch_size=128,
    shuffle=False,
    num_workers=4,
    pin_memory=True,
)

model = model.cuda()
model.eval()

evaluator = ImageNetEvaluator(
                 model_name='Faster-RCNN-TensorFlow-Python3',
                 paper_arxiv_id='1506.01497')

def get_img_id(image_name):
    return image_name.split('/')[-1].replace('.JPEG', '')

with torch.no_grad():
    for i, (input, target) in enumerate(test_loader):
        input = input.to(device='cuda', non_blocking=True)
        target = target.to(device='cuda', non_blocking=True)
        output = model(input
        image_ids = [get_img_id(img[0]) for img in test_loader.dataset.imgs[i*test_loader.batch_size:(i+1)*test_loader.batch_size]]
        evaluator.add(dict(zip(image_ids, list(output.cpu().numpy()))))

evaluator.save()
コード例 #6
0
    transform=input_transform,
    target_transform=None,
)

test_loader = DataLoader(
    test_dataset,
    batch_size=128,
    shuffle=False,
    num_workers=4,
    pin_memory=True,
)

model = model.cuda()
model.eval()

evaluator = ImageNetEvaluator(model_name=model_name,
                              paper_arxiv_id='1905.11946')


def get_img_id(image_name):
    return image_name.split('/')[-1].replace('.JPEG', '')


with torch.no_grad():
    for i, (input, target) in enumerate(test_loader):
        input = input.to(device='cuda', non_blocking=True)
        target = target.to(device='cuda', non_blocking=True)
        output = model(input)
        image_ids = [
            get_img_id(img[0])
            for img in test_loader.dataset.imgs[i *
                                                test_loader.batch_size:(i +
コード例 #7
0
ファイル: sotabench.py プロジェクト: GitKLVE/FixRes
from sotabencheval.image_classification import ImageNetEvaluator

evaluator = ImageNetEvaluator(
             model_name='ResNeXt-101-32x8d',
             paper_arxiv_id='1906.06423')

evaluator.add(dict(zip(image_ids, batch_output)))

evaluator.save()
コード例 #8
0
    download=True,
)

test_loader = DataLoader(
    test_dataset,
    batch_size=128,
    shuffle=False,
    num_workers=4,
    pin_memory=True,
)

model = model.cuda()
model.eval()

evaluator = ImageNetEvaluator(
                 model_name='ResNeXt-101-32x8d',
                 paper_arxiv_id='1611.05431')

def get_img_id(image_name):
    return image_name.split('/')[-1].replace('.JPEG', '')

with torch.no_grad():
    for i, (input, target) in enumerate(test_loader):
        input = input.to(device='cuda', non_blocking=True)
        target = target.to(device='cuda', non_blocking=True)
        output = model(input
        image_ids = [get_img_id(img[0]) for img in test_loader.dataset.imgs[i*test_loader.batch_size:(i+1)*test_loader.batch_size]]
        evaluator.add(dict(zip(image_ids, list(output.cpu().numpy()))))

evaluator.save()