Source code for hastegeo.core.models.training
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
from enum import Enum
from typing import List, Optional
from pydantic import BaseModel, Field
[docs]class ModelSource(str, Enum):
HASTE = "haste"
EXTERNAL = "external"
[docs]class Imagery(BaseModel):
normalization_means: Optional[List[int]] = None
normalization_stds: Optional[List[int]] = None
num_channels: Optional[int] = None
raw_fn: Optional[str] = None
rgb_fn: Optional[str] = None
[docs]class Inference(BaseModel):
output_subdir: str = Field(default="")
batch_size: int = Field(default=1)
gpu_id: int = Field(default=0)
checkpoint_fn: str = Field(default="")
padding: Optional[int] = Field(default=None)
patch_size: Optional[int] = Field(default=None)
building_footprints_source: Optional[str] = Field(default=None)
country_alpha2_iso_code: Optional[str] = Field(default=None)
predictions_gpkg_fileprefix: Optional[str] = Field(default=None)
[docs]class Labels(BaseModel):
buffer_in_meters: Optional[int] = None
class_to_buffer: Optional[str] = None
class_to_buffer_by: Optional[str] = None
classes: Optional[List[str]] = None
fn: Optional[str] = None
[docs]class Training(BaseModel):
batch_size: Optional[int] = None
checkpoint_subdir: Optional[str] = None
gpu_id: Optional[int] = None
learning_rate: Optional[float] = None
log_dir: Optional[str] = None
max_epochs: Optional[int] = None
use_constraint_loss: Optional[bool] = False
initial_weights_fn: Optional[str] = None
[docs]class ExperimentConfig(BaseModel):
experiment_dir: Optional[str] = None
experiment_name: Optional[str] = None
imagery: Optional[Imagery] = None
inference: Inference = Field(default_factory=Inference)
labels: Optional[Labels] = None
training: Optional[Training] = None
[docs]class CatalogModel(BaseModel):
baseModelName: str
description: Optional[str] = None
modelId: Optional[str] = None
projectId: Optional[str] = None
imageLayerId: Optional[str] = None
imagerySource: Optional[str] = None
checkpointFilePath: Optional[str] = None
eventTypes: Optional[List[str]] = None
cataloguedDate: Optional[str] = None
cataloguedByUser: str
additionalInfo: Optional[dict] = None
source: ModelSource = Field(default=ModelSource.HASTE)
usedByModels: list[str] = Field(default_factory=list)