Skip to main content

Model

The model key of the config.

FieldTypeRequiredDefaultDescription
encoderEncoderyesThe encoder to use for the model. This produces embeddings from preprocessed modality data for use as input to task heads.
tasksmap of string to ModelTaskyesThe tasks to perform with the embeddings produced by the encoder layer. Each task will produce predictions for the original inputs.

Encoder​

One of the following, selected by its name field:

nameType
manualManualEncoder
olmoearthOlmoEarthEncoder

ModelTask​

One of the following, selected by its name field:

nameType
classificationClassificationTask
detectionDetectionTask
embeddingEmbeddingTask
manualManualTask
per_pixel_regressionPerPixelRegressionTask
regressionRegressionTask
segmentationSegmentationTask

OlmoEarthEncoder​

OlmoEarth encoder configuration.

FieldTypeRequiredDefaultDescription
name"olmoearth"yes
patch_sizeinteger (≥ 1, ≤ 8)yesThe size of the patch to use for the model
sourceOlmoEarthSourceyesWhere to load the OlmoEarth encoder from
outputOlmoEarthEncoderOutputyesWhich of the model's outputs to use as the embedding.
use_legacy_timestampsbooleanyesFeed the model dummy monthly timestamps instead of the imagery's capture times.
token_poolingbooleannotruePool each patch's tokens over timesteps and band sets into one embedding. Set false to keep a token per timestep, for manual-task decoders that read the time series (e.g. a breakpoint scan).
location_query_patch_sizeinteger (≥ 1)nonullPixels per output embedding along each side, for encoders with an AttentionPooler (OlmoEarth v1.3+). Must divide patch_size; e.g. 1 gives one embedding per input pixel from patch_size 2 tokens. If omitted, the output is one embedding per patch.

ManualEncoder​

Escape hatch encoder providing raw rslearn encoder layers, e.g. OlmoEarth wrapped in SimpleTimeSeries.

Inputs are still prepared the OlmoEarth way (band order and normalization), so the layers must accept what the OlmoEarth encoder accepts. The transpiler can't look inside the layers, so the two properties the decoders depend on are declared here. A wrapped OlmoEarth loads its weights from its own init_args (a Hugging Face model_id or a path); registry foundation models aren't resolved for it.

FieldTypeRequiredDefaultDescription
name"manual"yes
encoder_layersarray of ComponentConfig (min 1 items)yesThe rslearn encoder layers, passed through to the model config as-is.
patch_sizeinteger (≥ 1)yesThe factor by which the encoder's feature map is smaller than its input, e.g. the wrapped OlmoEarth patch size.
embedding_sizeinteger (≥ 1)yesThe number of channels in the feature map the encoder hands to the decoders. A wrapper that concatenates features across groups multiplies the wrapped encoder's embedding size by the number of groups.

SegmentationTask​

FieldTypeRequiredDefaultDescription
name"segmentation"yes
decoderSegmentationDecoderyes

PerPixelRegressionTask​

FieldTypeRequiredDefaultDescription
name"per_pixel_regression"yes
decoderPerPixelRegressionDecoderyes

ClassificationTask​

FieldTypeRequiredDefaultDescription
name"classification"yes
decoderClassificationDecoderyes

RegressionTask​

FieldTypeRequiredDefaultDescription
name"regression"yes
decoderRegressionDecoderyes

DetectionTask​

FieldTypeRequiredDefaultDescription
name"detection"yes
decoderDetectionDecoderyes
box_side_lengthintegernonullWhen set, each annotation's geometry is replaced by a fixed box of this side length (in pixels) centered on the geometry's centroid, and that box becomes the training label. When unset, the geometry's native bounding box is used. Required for point annotations (which have degenerate bounding boxes); optional for polygons. Must be less than input_size.

EmbeddingTask​

Prediction-only task that produces encoder embeddings directly.

No decoder or training configuration -- the encoder's feature map is saved as the output via EmbeddingHead.

FieldTypeRequiredDefaultDescription
name"embedding"yes

ManualTask​

Escape hatch task providing raw rslearn decoder_layers and task config.

FieldTypeRequiredDefaultDescription
name"manual"yes
decoder_layersarray of ComponentConfigyes
taskComponentConfigyes

OlmoEarthSource​

One of the following, selected by its name field:

nameType
distributed_checkpointOlmoEarthFromDistributedCheckpoint
huggingfaceOlmoEarthFromHuggingFace
model_pathOlmoEarthFromModelPath
registryOlmoEarthFromRegistry

OlmoEarthEncoderOutput​

Allowed values: "patch_tokens", "student_location_tokens"

ComponentConfig​

A reference to an arbitrary class to be initialized: class_path + optional init_args.

FieldTypeRequiredDefaultDescription
class_pathstringyes
init_argsobject with arbitrary keysnonull

SegmentationDecoder​

One of the following, selected by its name field:

nameType
unetUnetSegmentationDecoder
upsample_convUpsampleConvSegmentationDecoder

PerPixelRegressionDecoder​

One of the following, selected by its name field:

nameType
unetUnetPerPixelRegressionDecoder

ClassificationDecoder​

One of the following, selected by its name field:

nameType
poolingPoolingClassificationDecoder

RegressionDecoder​

One of the following, selected by its name field:

nameType
poolingPoolingRegressionDecoder

DetectionDecoder​

One of the following, selected by its name field:

nameType
faster_rcnnFasterRCNNDetectionDecoder

OlmoEarthFromHuggingFace​

OlmoEarth encoder loaded from HuggingFace model ID.

FieldTypeRequiredDefaultDescription
name"huggingface"yes
model_idstringyesThe ID of the model to use (sourced from HF)
embedding_sizeintegernonullThe number of dimensions in the embeddings the encoder produces. If omitted, the size listed for model_id in rslearn's EMBEDDING_SIZES is used. Required when output is student_location_tokens.

OlmoEarthFromRegistry​

OlmoEarth encoder loaded from OlmoEarth's foundation model registry.

FieldTypeRequiredDefaultDescription
name"registry"yes
model_namestringyesThe name of the foundation model to use from OlmoEarth's registry
embedding_sizeintegeryesThe number of dimensions in the embeddings the encoder produces.

OlmoEarthFromModelPath​

OlmoEarth encoder loaded from a model checkpoint + config path. For unpublished models. Note: the embedding size must be explicitly provided, as we have no catalog or metadata to consult.

FieldTypeRequiredDefaultDescription
name"model_path"yes
model_pathstringyesThe path to the model checkpoint + config to use
embedding_sizeintegeryesThe number of dimensions in the embeddings the encoder produces.

OlmoEarthFromDistributedCheckpoint​

OlmoEarth encoder loaded from distributed checkpoint files + config. For in-flight pretraining checkpoints. Note: the embedding size must be explicitly provided, as we have no catalog or metadata to consult.

FieldTypeRequiredDefaultDescription
name"distributed_checkpoint"yes
checkpoint_pathstringyesThe path to the distributed checkpoint files + config to use
embedding_sizeintegeryesThe number of dimensions in the embeddings the encoder produces.

UpsampleConvSegmentationDecoder​

A decoder that upsamples the embeddings using a convolutional layer before passing to a segmentation decoder head.

FieldTypeRequiredDefaultDescription
name"upsample_conv"yes

UnetSegmentationDecoder​

A decoder that uses a U-Net architecture to perform segmentation.

FieldTypeRequiredDefaultDescription
name"unet"yes
conv_layers_per_resolutioninteger (≥ 1)no1Number of convolutional layers at each resolution level.
num_channelsmap of string to integernonullExplicit channel counts per resolution level (e.g. {8: 512, 4: 512, 2: 256, 1: 128}). When None, rslearn auto-calculates.

UnetPerPixelRegressionDecoder​

A decoder that uses a U-Net architecture with a per-pixel regression head (single channel output).

FieldTypeRequiredDefaultDescription
name"unet"yes
conv_layers_per_resolutioninteger (≥ 1)no1Number of convolutional layers at each resolution level.
num_channelsmap of string to integernonullExplicit channel counts per resolution level. When None, rslearn auto-calculates.

PoolingClassificationDecoder​

A decoder that uses global spatial pooling over encoder features followed by fully-connected layers and a classification head. Used for window-level (vector) classification tasks.

FieldTypeRequiredDefaultDescription
name"pooling"yes

PoolingRegressionDecoder​

A decoder that uses global spatial pooling over encoder features followed by fully-connected layers and a regression head. Used for window-level (vector) regression tasks.

FieldTypeRequiredDefaultDescription
name"pooling"yes

FasterRCNNDetectionDecoder​

A decoder that uses a Faster R-CNN architecture to perform detection + classification.

FieldTypeRequiredDefaultDescription
name"faster_rcnn"yes
anchor_sizesarray of array of integeryesAnchor box sizes in input image pixels for the Region Proposal Network. Each inner list corresponds to one encoder feature map level. OlmoEarth produces a single feature map, so use one inner list, e.g. [[32]]. Set values to roughly match the expected pixel size of detectable objects.