Module pretraining
This module performs pretraining of the ice flow iflo_emulator
on a glacier catalog to enhance its performance during glacier forward runs. Pretraining can be a computationally intensive task, taking a few hours to complete. This module should be executed independently, without involving any other IGM modules. Below is an example of a parameter file:
# @package _global_
defaults:
- override /inputs: []
- override /processes: [pretraining, iceflow]
- override /outputs: []
processes:
iceflow:
Nz : 10
dim_arrhenius : 2
multiple_window_size : 8
nb_layers : 16
nb_out_filter : 32
network : cnn
new_friction_param : True
retrain_emulator_lr : 0.0001
solve_nbitmax : 1000
solve_stop_if_no_decrease : False
pretraining:
epochs : 1000
data_dir: data/surflib3d_shape_100
soft_begining: 1000
min_slidingco: 0.01
max_slidingco: 0.4
min_arrhenius: 5
max_arrhenius: 400
To run this module, you first need access to a glacier catalog. A dataset of a glacier catalog (mountain glaciers) commonly used for pretraining IGM emulators is available here: .
After downloading (or generating your own dataset), organize the folder surflib3d_shape_100
into two subfolders: train
and test
.
Config Structure
pretraining:
data_dir: "surflib3d_shape_100"
batch_size: 1
freq_test: 20
train_iceflow_emulator_restart_lr: 2500
epochs: 5000
min_arrhenius: 5.0
max_arrhenius: 151.0
min_slidingco: 0.0
max_slidingco: 20000.0
min_coarsen: 0
max_coarsen: 2
soft_begining: 500
Parameters
Name | Type | Units | Description | Default Value |
---|---|---|---|---|
data_dir | str | dimless | Directory of the data of the glacier catalog | surflib3d_shape_100 |
batch_size | integer | dimless | Batch size | 1 |
freq_test | integer | dimless | Frequency of the test | 20 |
train_iceflow_emulator_restart_lr | integer | dimless | Restart frequency for the learning rate | 2500 |
epochs | integer | dimless | Number of epochs | 5000 |
min_arrhenius | float | dimless | Minimum Arrhenius factor | 5.0 |
max_arrhenius | float | ??? | Maximum Arrhenius factor | 151.0 |
min_slidingco | float | ??? | Minimum sliding coefficient | 0.0 |
max_slidingco | float | dimless | Maximum sliding coefficient | 20000.0 |
min_coarsen | integer | ??? | Minimum coarsening factor | 0 |
max_coarsen | integer | ??? | Maximum coarsening factor | 2 |
soft_begining | integer | dimless | soft_begining, if 0 explore all parameters between min and max, otherwise, only explore from this iteration while keeping mid-value for the first it. | 500 |