Quickstart#

This page walks through running your first benchmark end-to-end: download data, run the eval pipeline, and inspect the results.

Prerequisites#

  • torchgeo-bench installed (see Installation).

  • At least one GeoBench dataset downloaded into ./data/ — easiest is the small m-eurosat split.

Download data#

Datasets always live under ./data/ relative to the current working directory (paths are fixed — there are no GEOBENCH_ROOT environment variables). The bundled downloader fetches each family by name:

$ torchgeo-bench download geobench_v1                       # all V1 classification datasets
$ torchgeo-bench download geobench_v2                       # default V2 set (cls + seg)
$ torchgeo-bench download geobench_v2 --datasets benv2,burn_scars
$ torchgeo-bench download eurosat                           # torchgeo's EuroSAT mirror

See Datasets for the full list of supported names and the canonical destination subdirectories.

Run a benchmark#

Run the default model (Random Convolutional Features) on EuroSAT V1 with KNN-5 + linear probing + 200 bootstrap resamples:

$ torchgeo-bench run dataset.names=[m-eurosat]

Use a different backbone preset (anything in src/torchgeo_bench/conf/model/):

$ torchgeo-bench run model=timm/resnet50 dataset.names=[m-eurosat,m-pv4ger]

Skip the (slow) linear probe and reduce bootstrap noise to iterate quickly:

$ torchgeo-bench run eval.skip_linear=true eval.bootstrap=100

Resume mode#

If a previous run was interrupted, resume=true skips any (dataset, method, model, config) combination that already exists in the output CSV:

$ torchgeo-bench run resume=true

See Results format for the exact key schema used by resume mode.

Inspect the results#

By default results land in results/all_results.csv. Each row is a flat EvaluationResult, so you can read it directly with pandas:

import pandas as pd

df = pd.read_csv("results/all_results.csv")
print(df.groupby(["dataset", "method"])["metric_value"].mean())