def METHOD_NAME(self, dataloader, modelpath=None):
    if modelpath is not None:
        self.model.load_state_dict(torch.load(modelpath))
    texts = dataloader.dataset.labels
    text_features = self.get_text_features_list(texts)
    res = None
    for batch in tqdm(dataloader):
        image, _, label = batch
        image = image.to(self.device)
        label = label.to(self.device)
        image_features = self.get_image_features(image)
        similarity = self.get_similarity(image_features, text_features)
        _, indices = similarity.topk(1)
        pred = torch.squeeze(indices)
        result = torch.cat([pred.view(-1, 1), label.view(-1, 1)], dim=1)
        if res is None:
            res = result
        else:
            res = torch.cat([res, result], dim=0)
    res = res.cpu().numpy()
    acc = np.mean(np.array(res)[:, 0] == np.array(res)[:, 1])
    return acc, res