Default configuration
Configurations are managed with hydra. Here, we show the default configuration at a glance.
Refer to source configurations files in folder configs for more information.
seed: 12345
work_dir: ${hydra:runtime.cwd}
debug: false
print_config: true
ignore_warnings: true
trainer:
_target_: pytorch_lightning.Trainer
min_epochs: 1
max_epochs: 1
log_every_n_steps: 1
accelerator: cpu
devices: 1
num_nodes: 1
limit_train_batches: 1
limit_val_batches: 1
limit_test_batches: 1
num_sanity_val_steps: 0
datamodule:
transforms:
preparations:
train:
TargetTransform:
_target_: myria3d.pctl.transforms.transforms.TargetTransform
_args_:
- ${dataset_description.classification_preprocessing_dict}
- ${dataset_description.classification_dict}
DropPointsByClass:
_target_: myria3d.pctl.transforms.transforms.DropPointsByClass
GridSampling:
_target_: torch_geometric.transforms.GridSampling
_args_:
- 0.25
MinimumNumNodes:
_target_: myria3d.pctl.transforms.transforms.MinimumNumNodes
_args_:
- 300
MaximumNumNodes:
_target_: myria3d.pctl.transforms.transforms.MaximumNumNodes
_args_:
- 40000
Center:
_target_: torch_geometric.transforms.Center
eval:
TargetTransform:
_target_: myria3d.pctl.transforms.transforms.TargetTransform
_args_:
- ${dataset_description.classification_preprocessing_dict}
- ${dataset_description.classification_dict}
DropPointsByClass:
_target_: myria3d.pctl.transforms.transforms.DropPointsByClass
CopyFullPos:
_target_: myria3d.pctl.transforms.transforms.CopyFullPos
CopyFullPreparedTargets:
_target_: myria3d.pctl.transforms.transforms.CopyFullPreparedTargets
GridSampling:
_target_: torch_geometric.transforms.GridSampling
_args_:
- 0.25
MinimumNumNodes:
_target_: myria3d.pctl.transforms.transforms.MinimumNumNodes
_args_:
- 300
MaximumNumNodes:
_target_: myria3d.pctl.transforms.transforms.MaximumNumNodes
_args_:
- 40000
CopySampledPos:
_target_: myria3d.pctl.transforms.transforms.CopySampledPos
Center:
_target_: torch_geometric.transforms.Center
predict:
DropPointsByClass:
_target_: myria3d.pctl.transforms.transforms.DropPointsByClass
CopyFullPos:
_target_: myria3d.pctl.transforms.transforms.CopyFullPos
GridSampling:
_target_: torch_geometric.transforms.GridSampling
_args_:
- 0.25
MinimumNumNodes:
_target_: myria3d.pctl.transforms.transforms.MinimumNumNodes
_args_:
- 300
MaximumNumNodes:
_target_: myria3d.pctl.transforms.transforms.MaximumNumNodes
_args_:
- 40000
CopySampledPos:
_target_: myria3d.pctl.transforms.transforms.CopySampledPos
Center:
_target_: torch_geometric.transforms.Center
augmentations: {}
normalizations:
NullifyLowestZ:
_target_: myria3d.pctl.transforms.transforms.NullifyLowestZ
NormalizePos:
_target_: myria3d.pctl.transforms.transforms.NormalizePos
subtile_width: ${datamodule.subtile_width}
StandardizeRGBAndIntensity:
_target_: myria3d.pctl.transforms.transforms.StandardizeRGBAndIntensity
augmentations_list: '${oc.dict.values: datamodule.transforms.augmentations}'
preparations_train_list: '${oc.dict.values: datamodule.transforms.preparations.train}'
preparations_eval_list: '${oc.dict.values: datamodule.transforms.preparations.eval}'
preparations_predict_list: '${oc.dict.values: datamodule.transforms.preparations.predict}'
normalizations_list: '${oc.dict.values: datamodule.transforms.normalizations}'
_target_: myria3d.pctl.datamodule.hdf5.HDF5LidarDataModule
data_dir: null
epsg: null
split_csv_path: null
hdf5_file_path: ${hydra:runtime.cwd}/tests/data/toy_dataset.hdf5
points_pre_transform:
_target_: functools.partial
_args_:
- ${get_method:myria3d.pctl.points_pre_transform.lidar_hd.lidar_hd_pre_transform}
pre_filter:
_target_: functools.partial
_args_:
- ${get_method:myria3d.pctl.dataset.utils.pre_filter_below_n_points}
min_num_nodes: 1
tile_width: 1000
subtile_width: 50
subtile_overlap_train: 0
subtile_overlap_predict: ${predict.subtile_overlap}
batch_size: 2
num_workers: 1
prefetch_factor: 3
dataset_description:
_convert_: all
classification_preprocessing_dict:
3: 5
4: 5
160: 64
161: 64
162: 64
0: 1
7: 1
46: 1
47: 1
48: 1
49: 1
50: 1
51: 1
52: 1
53: 1
54: 1
55: 1
56: 1
57: 1
58: 1
66: 1
67: 1
77: 1
155: 1
204: 1
classification_dict:
1: unclassified
2: ground
5: vegetation
6: building
9: water
17: bridge
64: lasting_above
class_weights:
- 0.25
- 0.1
- 0.1
- 0.5
- 2.0
- 2.0
- 2.0
d_in: 9
num_classes: 7
callbacks:
log_code:
_target_: myria3d.callbacks.comet_callbacks.LogCode
code_dir: ${work_dir}/myria3d
log_logs_dir:
_target_: myria3d.callbacks.comet_callbacks.LogLogsPath
lr_monitor:
_target_: pytorch_lightning.callbacks.LearningRateMonitor
logging_interval: step
log_momentum: true
model_checkpoint:
_target_: pytorch_lightning.callbacks.ModelCheckpoint
monitor: val/loss_epoch
mode: min
save_top_k: 1
save_last: true
verbose: true
dirpath: checkpoints/
filename: epoch_{epoch:03d}
auto_insert_metric_name: false
early_stopping:
_target_: pytorch_lightning.callbacks.EarlyStopping
monitor: val/loss_epoch
mode: min
patience: 6
min_delta: 0
model_detailed_metrics:
_target_: myria3d.callbacks.metric_callbacks.ModelMetrics
num_classes: ${model.num_classes}
model:
optimizer:
_target_: functools.partial
_args_:
- ${get_method:torch.optim.Adam}
lr: ${model.lr}
lr_scheduler:
_target_: functools.partial
_args_:
- ${get_method:torch.optim.lr_scheduler.ReduceLROnPlateau}
mode: min
factor: 0.5
patience: 20
cooldown: 5
verbose: true
criterion:
_target_: torch.nn.CrossEntropyLoss
label_smoothing: 0.0
ignore_index: 65
_target_: myria3d.models.model.Model
d_in: ${dataset_description.d_in}
num_classes: ${dataset_description.num_classes}
classification_dict: ${dataset_description.classification_dict}
ckpt_path: null
neural_net_class_name: PyGRandLANet
neural_net_hparams:
num_features: ${model.d_in}
num_classes: ${model.num_classes}
num_neighbors: 16
decimation: 4
return_logits: true
interpolation_k: ${predict.interpolator.interpolation_k}
num_workers: 4
momentum: 0.9
monitor: val/loss_epoch
lr: 0.003933709606504788
logger:
comet:
_target_: pytorch_lightning.loggers.comet.CometLogger
api_key: ${oc.env:COMET_API_TOKEN}
workspace: ${oc.env:COMET_WORKSPACE}
project_name: ${oc.env:COMET_PROJECT_NAME}
experiment_name: RandLaNetDebug
auto_log_co2: false
disabled: true
task:
task_name: fit
auto_lr_find: false
predict:
src_las: /path/to/input.las
output_dir: /path/to/output_dir/
ckpt_path: /path/to/lightning_model.ckpt
gpus: 0
subtile_overlap: 0
interpolator:
_target_: myria3d.models.interpolation.Interpolator
interpolation_k: 10
classification_dict: ${dataset_description.classification_dict}
probas_to_save: all
predicted_classification_channel: PredictedClassification
entropy_channel: entropy