diff --git a/data/helios/v2_pastis/basecfg_galileo_single.yaml b/data/helios/v2_pastis/basecfg_galileo_single.yaml new file mode 100644 index 00000000..3d5d8b08 --- /dev/null +++ b/data/helios/v2_pastis/basecfg_galileo_single.yaml @@ -0,0 +1,174 @@ +model: + class_path: rslearn.train.lightning_module.RslearnLightningModule + init_args: + model: + class_path: rslearn.models.multitask.MultiTaskModel + init_args: + encoder: + - class_path: rslearn.models.galileo.GalileoModel + init_args: + size: NANO + patch_size: 4 + decoders: + segment: + - class_path: rslearn.models.unet.UNetDecoder + init_args: + in_channels: [[4, 128]] + out_channels: 20 + conv_layers_per_resolution: 2 + num_channels: {8: 128, 4: 128, 2: 128, 1: 128} + - class_path: rslearn.train.tasks.segmentation.SegmentationHead + lr: 0.0001 + scheduler: + class_path: rslearn.train.scheduler.PlateauScheduler + init_args: + factor: 0.2 + patience: 2 + min_lr: 0 + cooldown: 20 +data: + class_path: rslearn.train.data_module.RslearnDataModule + init_args: + path: /weka/dfive-default/rslearn-eai/datasets/pastis/rslearn_dataset/ + inputs: + sentinel2_0: + data_type: "raster" + layers: ["sentinel2"] + bands: ["B02", "B03", "B04", "B05", "B06", "B07", "B08", "B8A", "B11", "B12"] + passthrough: true + sentinel2_1: + data_type: "raster" + layers: ["sentinel2.1"] + bands: ["B02", "B03", "B04", "B05", "B06", "B07", "B08", "B8A", "B11", "B12"] + passthrough: true + sentinel2_2: + data_type: "raster" + layers: ["sentinel2.2"] + bands: ["B02", "B03", "B04", "B05", "B06", "B07", "B08", "B8A", "B11", "B12"] + passthrough: true + sentinel2_3: + data_type: "raster" + layers: ["sentinel2.3"] + bands: ["B02", "B03", "B04", "B05", "B06", "B07", "B08", "B8A", "B11", "B12"] + passthrough: true + sentinel2_4: + data_type: "raster" + layers: ["sentinel2.4"] + bands: ["B02", "B03", "B04", "B05", "B06", "B07", "B08", "B8A", "B11", "B12"] + passthrough: true + sentinel2_5: + data_type: "raster" + layers: ["sentinel2.5"] + bands: ["B02", "B03", "B04", "B05", "B06", "B07", "B08", "B8A", "B11", "B12"] + passthrough: true + sentinel2_6: + data_type: "raster" + layers: ["sentinel2.6"] + bands: ["B02", "B03", "B04", "B05", "B06", "B07", "B08", "B8A", "B11", "B12"] + passthrough: true + sentinel2_7: + data_type: "raster" + layers: ["sentinel2.7"] + bands: ["B02", "B03", "B04", "B05", "B06", "B07", "B08", "B8A", "B11", "B12"] + passthrough: true + sentinel2_8: + data_type: "raster" + layers: ["sentinel2.8"] + bands: ["B02", "B03", "B04", "B05", "B06", "B07", "B08", "B8A", "B11", "B12"] + passthrough: true + sentinel2_9: + data_type: "raster" + layers: ["sentinel2.9"] + bands: ["B02", "B03", "B04", "B05", "B06", "B07", "B08", "B8A", "B11", "B12"] + passthrough: true + sentinel2_10: + data_type: "raster" + layers: ["sentinel2.10"] + bands: ["B02", "B03", "B04", "B05", "B06", "B07", "B08", "B8A", "B11", "B12"] + passthrough: true + sentinel2_11: + data_type: "raster" + layers: ["sentinel2.11"] + bands: ["B02", "B03", "B04", "B05", "B06", "B07", "B08", "B8A", "B11", "B12"] + passthrough: true + targets: + data_type: "raster" + layers: ["label"] + bands: ["class"] + is_target: true + default_config: + transforms: + - class_path: rslearn.train.transforms.concatenate.Concatenate + init_args: + selections: + sentinel2_0: [] + sentinel2_1: [] + sentinel2_2: [] + sentinel2_3: [] + sentinel2_4: [] + sentinel2_5: [] + sentinel2_6: [] + sentinel2_7: [] + sentinel2_8: [] + sentinel2_9: [] + sentinel2_10: [] + sentinel2_11: [] + output_selector: s2 + task: + class_path: rslearn.train.tasks.multi_task.MultiTask + init_args: + tasks: + segment: + class_path: rslearn.train.tasks.segmentation.SegmentationTask + init_args: + num_classes: 20 + remap_values: [[0, 1], [0, 255]] + zero_is_invalid: true + metric_kwargs: + average: "micro" + enable_miou_metric: true + input_mapping: + segment: + targets: "targets" + train_config: + groups: ["fold1", "fold2", "fold3"] + transforms: + - class_path: rslearn.train.transforms.concatenate.Concatenate + init_args: + selections: + sentinel2_0: [] + sentinel2_1: [] + sentinel2_2: [] + sentinel2_3: [] + sentinel2_4: [] + sentinel2_5: [] + sentinel2_6: [] + sentinel2_7: [] + sentinel2_8: [] + sentinel2_9: [] + sentinel2_10: [] + sentinel2_11: [] + output_selector: s2 + - class_path: rslearn.train.transforms.flip.Flip + init_args: + image_selectors: ["s2", "target/segment/classes", "target/segment/valid"] + batch_size: 8 + num_workers: 16 + val_config: + groups: ["fold4"] + test_config: + groups: ["fold5"] +trainer: + max_epochs: 500 + callbacks: + - class_path: lightning.pytorch.callbacks.LearningRateMonitor + init_args: + logging_interval: "epoch" + - class_path: lightning.pytorch.callbacks.ModelCheckpoint + init_args: + save_top_k: 1 + save_last: true + monitor: val_segment/accuracy + mode: max +rslp_project: placeholder +rslp_experiment: placeholder diff --git a/data/helios/v2_pastis/basecfg_galileo_ts.yaml b/data/helios/v2_pastis/basecfg_galileo_ts.yaml new file mode 100644 index 00000000..2b235c09 --- /dev/null +++ b/data/helios/v2_pastis/basecfg_galileo_ts.yaml @@ -0,0 +1,125 @@ +model: + init_args: + model: + init_args: + encoder: + - class_path: rslearn.models.galileo.GalileoModel + init_args: + size: TINY + patch_size: 4 + decoders: + segment: + - class_path: rslearn.models.unet.UNetDecoder + init_args: + in_channels: [[4, 192]] + out_channels: 20 + conv_layers_per_resolution: 2 + num_channels: {8: 512, 4: 512, 2: 256, 1: 128} + - class_path: rslearn.train.tasks.segmentation.SegmentationHead +data: + init_args: + inputs: + sentinel2_0: + data_type: "raster" + layers: ["sentinel2"] + bands: ["B02", "B03", "B04", "B05", "B06", "B07", "B08", "B8A", "B11", "B12"] + passthrough: true + sentinel2_1: + data_type: "raster" + layers: ["sentinel2.1"] + bands: ["B02", "B03", "B04", "B05", "B06", "B07", "B08", "B8A", "B11", "B12"] + passthrough: true + sentinel2_2: + data_type: "raster" + layers: ["sentinel2.2"] + bands: ["B02", "B03", "B04", "B05", "B06", "B07", "B08", "B8A", "B11", "B12"] + passthrough: true + sentinel2_3: + data_type: "raster" + layers: ["sentinel2.3"] + bands: ["B02", "B03", "B04", "B05", "B06", "B07", "B08", "B8A", "B11", "B12"] + passthrough: true + sentinel2_4: + data_type: "raster" + layers: ["sentinel2.4"] + bands: ["B02", "B03", "B04", "B05", "B06", "B07", "B08", "B8A", "B11", "B12"] + passthrough: true + sentinel2_5: + data_type: "raster" + layers: ["sentinel2.5"] + bands: ["B02", "B03", "B04", "B05", "B06", "B07", "B08", "B8A", "B11", "B12"] + passthrough: true + sentinel2_6: + data_type: "raster" + layers: ["sentinel2.6"] + bands: ["B02", "B03", "B04", "B05", "B06", "B07", "B08", "B8A", "B11", "B12"] + passthrough: true + sentinel2_7: + data_type: "raster" + layers: ["sentinel2.7"] + bands: ["B02", "B03", "B04", "B05", "B06", "B07", "B08", "B8A", "B11", "B12"] + passthrough: true + sentinel2_8: + data_type: "raster" + layers: ["sentinel2.8"] + bands: ["B02", "B03", "B04", "B05", "B06", "B07", "B08", "B8A", "B11", "B12"] + passthrough: true + sentinel2_9: + data_type: "raster" + layers: ["sentinel2.9"] + bands: ["B02", "B03", "B04", "B05", "B06", "B07", "B08", "B8A", "B11", "B12"] + passthrough: true + sentinel2_10: + data_type: "raster" + layers: ["sentinel2.10"] + bands: ["B02", "B03", "B04", "B05", "B06", "B07", "B08", "B8A", "B11", "B12"] + passthrough: true + sentinel2_11: + data_type: "raster" + layers: ["sentinel2.11"] + bands: ["B02", "B03", "B04", "B05", "B06", "B07", "B08", "B8A", "B11", "B12"] + passthrough: true + targets: + data_type: "raster" + layers: ["label"] + bands: ["class"] + is_target: true + default_config: + transforms: + - class_path: rslearn.train.transforms.concatenate.Concatenate + init_args: + selections: + sentinel2_0: [] + sentinel2_1: [] + sentinel2_2: [] + sentinel2_3: [] + sentinel2_4: [] + sentinel2_5: [] + sentinel2_6: [] + sentinel2_7: [] + sentinel2_8: [] + sentinel2_9: [] + sentinel2_10: [] + sentinel2_11: [] + output_selector: s2 + train_config: + transforms: + - class_path: rslearn.train.transforms.concatenate.Concatenate + init_args: + selections: + sentinel2_0: [] + sentinel2_1: [] + sentinel2_2: [] + sentinel2_3: [] + sentinel2_4: [] + sentinel2_5: [] + sentinel2_6: [] + sentinel2_7: [] + sentinel2_8: [] + sentinel2_9: [] + sentinel2_10: [] + sentinel2_11: [] + output_selector: s2 + - class_path: rslearn.train.transforms.flip.Flip + init_args: + image_selectors: ["s2", "target/segment/classes", "target/segment/valid"]