Testing

import pytorch_lightning as pl
import torch

import fastface as ff

# checkout available pretrained models
print(ff.list_pretrained_models())
# ["lffd_slim", "lffd_original"]

# build pl.LightningModule using pretrained weights
model = ff.FaceDetector.from_pretrained("lffd_slim")

# set model to eval mode
model.eval()

# build transforms
transforms = ff.transforms.Compose(
    ff.transforms.Interpolate(target_size=480),
    ff.transforms.Padding(target_size=(480, 480)),
)

# build torch.utils.data.Dataset
ds = ff.dataset.FDDBDataset(phase="test", transforms=transforms)

# build torch.utils.data.DataLoader
dl = ds.get_dataloader(batch_size=1, num_workers=0)

# add average precision pl.metrics.Metric to the model
model.add_metric("average_precision", ff.metric.AveragePrecision(iou_threshold=0.5))

# define pl.Trainer for testing
trainer = pl.Trainer(
    benchmark=True,
    logger=False,
    checkpoint_callback=False,
    gpus=1 if torch.cuda.is_available() else 0,
    precision=32,
)

# run test
trainer.test(model, test_dataloaders=[dl])
"""
DATALOADER:0 TEST RESULTS
{'average_precision': 0.9459084272384644}
"""