Skip to content

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: DOI.

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