Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
4673353
add-earthformer
Mar 21, 2024
b1d026b
add-earthformer
Mar 21, 2024
cc17151
Merge branch 'develop' of https://github.com/PaddlePaddle/PaddleScien…
Mar 21, 2024
5b8ec36
add-earthformer
Mar 21, 2024
fd7aadb
add-earthformer
Mar 25, 2024
074a32d
add-earthformer
Yang-Changhui Mar 25, 2024
6f08e82
add-earthformer
Yang-Changhui Mar 26, 2024
2dfbabb
Merge branch 'develop' into add_earthformer
Yang-Changhui Mar 26, 2024
457b8a7
add-earthformer
Yang-Changhui Mar 27, 2024
54463dd
add-earthformer
Yang-Changhui Mar 27, 2024
0eebf42
Merge branch 'develop' into add_earthformer
Yang-Changhui Mar 27, 2024
541ae87
Merge branch 'develop' of https://github.com/PaddlePaddle/PaddleScien…
Yang-Changhui Mar 27, 2024
ede9618
Merge branch 'add_earthformer' of https://github.com/Yang-Changhui/Pa…
Yang-Changhui Mar 27, 2024
a58869b
add-earthformer
Yang-Changhui Mar 28, 2024
872c763
add-earthformer
Yang-Changhui Mar 28, 2024
ff41984
add-earthformer
Yang-Changhui Mar 28, 2024
a98e284
add-earthformer
Yang-Changhui Mar 28, 2024
5111ab8
Merge branch 'develop' of https://github.com/PaddlePaddle/PaddleScien…
Yang-Changhui Mar 28, 2024
83f221e
add-earthformer
Yang-Changhui Mar 28, 2024
18eb8aa
add-earthfromer
Yang-Changhui Mar 28, 2024
9ca51c9
Merge branch 'develop' into add_earthformer
Yang-Changhui Mar 29, 2024
2d4d682
add-earthformer
Yang-Changhui Mar 30, 2024
f946a1f
Merge branch 'add_earthformer' of https://github.com/Yang-Changhui/Pa…
Yang-Changhui Mar 30, 2024
f4cb1ca
add-earthformer
Yang-Changhui Mar 30, 2024
e4ae8f3
Merge branch 'develop' of https://github.com/PaddlePaddle/PaddleScien…
Yang-Changhui Mar 30, 2024
4979d89
'add-earthfromer'
Yang-Changhui Mar 30, 2024
b3ec330
add-earthfromer
Yang-Changhui Mar 30, 2024
d64e3e6
add-earthformer
Yang-Changhui Apr 2, 2024
5d37aa1
Merge branch 'develop' into add_earthformer
Yang-Changhui Apr 2, 2024
90d343d
add-earthformer
Yang-Changhui Apr 2, 2024
4109f12
Merge branch 'add_earthformer' of https://github.com/Yang-Changhui/Pa…
Yang-Changhui Apr 2, 2024
6ad448c
Merge branch 'develop' into add_earthformer
Yang-Changhui Apr 2, 2024
ca8d402
add-earthformer
Yang-Changhui Apr 3, 2024
fc10355
Merge branch 'develop' of https://github.com/PaddlePaddle/PaddleScien…
Yang-Changhui Apr 3, 2024
c3a2ed6
Merge branch 'add_earthformer' of https://github.com/Yang-Changhui/Pa…
Yang-Changhui Apr 3, 2024
bc19623
add-earthformer
Yang-Changhui Apr 7, 2024
0ae6c9c
add-earthformer
Yang-Changhui Apr 7, 2024
43f7a46
Merge branch 'develop' into add_earthformer
Yang-Changhui Apr 7, 2024
149ac74
add-earthfromer
Yang-Changhui Apr 13, 2024
ec87043
Merge branch 'add_earthformer' of https://github.com/Yang-Changhui/Pa…
Yang-Changhui Apr 13, 2024
25c7bc8
Merge branch 'develop' into add_earthformer
Yang-Changhui Apr 13, 2024
79aed10
add-earthformer
Yang-Changhui Apr 13, 2024
bddc5e4
add-earthformer
Yang-Changhui Apr 16, 2024
b44c2a5
add-earthformer
Yang-Changhui Apr 16, 2024
b15ca3a
Merge branch 'develop' into add_earthformer
Yang-Changhui Apr 16, 2024
50d5137
add-earthformer
Yang-Changhui Apr 16, 2024
cdf1216
Merge branch 'add_earthformer' of https://github.com/Yang-Changhui/Pa…
Yang-Changhui Apr 16, 2024
8d06a9b
Merge branch 'develop' into add_earthformer
Yang-Changhui Apr 16, 2024
884e8f5
add-earthformer
Yang-Changhui Apr 24, 2024
0d3deb1
Merge branch 'add_earthformer' of https://github.com/Yang-Changhui/Pa…
Yang-Changhui Apr 24, 2024
87e158f
Merge branch 'develop' into add_earthformer
Yang-Changhui Apr 24, 2024
e240608
Merge branch 'develop' into add_earthformer
Yang-Changhui Apr 24, 2024
3dccb22
Merge branch 'develop' into add_earthformer
zhiminzhang0830 Apr 26, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/zh/api/arch.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,5 +27,6 @@
- DGMR
- ChipDeepONets
- AutoEncoder
- CuboidTransformer
show_root_heading: true
heading_level: 3
2 changes: 2 additions & 0 deletions docs/zh/api/data/dataset.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@
- MeshAirfoilDataset
- MeshCylinderDataset
- RadarDataset
- ENSODataset
- SEVIRDataset
- build_dataset
- DGMRDataset
show_root_heading: true
153 changes: 153 additions & 0 deletions examples/earthformer/conf/earthformer_enso_pretrain.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
hydra:
run:
# dynamic output directory according to running time and override name
dir: outputs_earthformer_pretrain
job:
name: ${mode} # name of logfile
chdir: false # keep current working direcotry unchaned
config:
override_dirname:
exclude_keys:
- TRAIN.checkpoint_path
- TRAIN.pretrained_model_path
- EVAL.pretrained_model_path
- mode
- output_dir
- log_freq
callbacks:
init_callback:
_target_: ppsci.utils.callbacks.InitCallback
sweep:
# output directory for multirun
dir: ${hydra.run.dir}
subdir: ./

# general settings
mode: train # running mode: train/eval/export/infer
seed: 0
output_dir: ${hydra:run.dir}
log_freq: 20

# set train and evaluate data path
FILE_PATH: ./datasets/enso/enso_round1_train_20210201

# dataset setting
DATASET:
label_keys: ["sst_target","nino_target"]
in_len: 12
out_len: 14
nino_window_t: 3
in_stride: 1
out_stride: 1
train_samples_gap: 2
eval_samples_gap: 1
normalize_sst: true

# model settings
MODEL:
input_keys: ["sst_data"]
output_keys: ["sst_target","nino_target"]
input_shape: [12, 24, 48, 1]
target_shape: [14, 24, 48, 1]
base_units: 64
scale_alpha: 1.0

enc_depth: [1, 1]
dec_depth: [1, 1]
enc_use_inter_ffn: true
dec_use_inter_ffn: true
dec_hierarchical_pos_embed: false

downsample: 2
downsample_type: "patch_merge"
upsample_type: "upsample"

num_global_vectors: 0
use_dec_self_global: false
dec_self_update_global: true
use_dec_cross_global: false
use_global_vector_ffn: false
use_global_self_attn: false
separate_global_qkv: false
global_dim_ratio: 1

self_pattern: "axial"
cross_self_pattern: "axial"
cross_pattern: "cross_1x1"
dec_cross_last_n_frames: null

attn_drop: 0.1
proj_drop: 0.1
ffn_drop: 0.1
num_heads: 4

ffn_activation: "gelu"
gated_ffn: false
norm_layer: "layer_norm"
padding_type: "zeros"
pos_embed_type: "t+h+w"
use_relative_pos: true
self_attn_use_final_proj: true
dec_use_first_self_attn: false

z_init_method: "zeros"
initial_downsample_type: "conv"
initial_downsample_activation: "leaky_relu"
initial_downsample_scale: [1, 1, 2]
initial_downsample_conv_layers: 2
final_upsample_conv_layers: 1
checkpoint_level: 2

attn_linear_init_mode: "0"
ffn_linear_init_mode: "0"
conv_init_mode: "0"
down_up_linear_init_mode: "0"
norm_init_mode: "0"


# training settings
TRAIN:
epochs: 100
save_freq: 20
eval_during_train: true
eval_freq: 10
lr_scheduler:
epochs: ${TRAIN.epochs}
learning_rate: 0.0002
by_epoch: true
min_lr_ratio: 1.0e-3
wd: 1.0e-5
batch_size: 16
pretrained_model_path: null
checkpoint_path: null


# evaluation settings
EVAL:
pretrained_model_path: ./checkpoint/enso/earthformer_enso.pdparams
compute_metric_by_batch: false
eval_with_no_grad: true
batch_size: 1

INFER:
pretrained_model_path: ./checkpoint/enso/earthformer_enso.pdparams
export_path: ./inference/earthformer/enso
pdmodel_path: ${INFER.export_path}.pdmodel
pdpiparams_path: ${INFER.export_path}.pdiparams
device: gpu
engine: native
precision: fp32
onnx_path: ${INFER.export_path}.onnx
ir_optim: true
min_subgraph_size: 10
gpu_mem: 4000
gpu_id: 0
max_batch_size: 16
num_cpu_threads: 4
batch_size: 1
data_path: ./datasets/enso/infer/SODA_train.nc
in_len: 12
in_stride: 1
out_len: 14
out_stride: 1
samples_gap: 1
185 changes: 185 additions & 0 deletions examples/earthformer/conf/earthformer_sevir_pretrain.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,185 @@
hydra:
run:
# dynamic output directory according to running time and override name
dir: outputs_earthformer_pretrain
job:
name: ${mode} # name of logfile
chdir: false # keep current working direcotry unchaned
config:
override_dirname:
exclude_keys:
- TRAIN.checkpoint_path
- TRAIN.pretrained_model_path
- EVAL.pretrained_model_path
- mode
- output_dir
- log_freq
callbacks:
init_callback:
_target_: ppsci.utils.callbacks.InitCallback
sweep:
# output directory for multirun
dir: ${hydra.run.dir}
subdir: ./

# general settings
mode: train # running mode: train/eval/export/infer
seed: 0
output_dir: ${hydra:run.dir}
log_freq: 20

# set train and evaluate data path
FILE_PATH: ./datasets/sevir/sevir_data

# SEVIR dataset:raw_seq_len: 49,interval_real_time:5, img_height = 384,img_width = 384
# SEVIR_lr dataset:raw_seq_len: 25,interval_real_time:10, img_height = 128,img_width = 128

# dataset setting
DATASET:
label_keys: ["vil"]
data_types: ["vil"]
seq_len: 25
raw_seq_len: 49
sample_mode: "sequent"
stride: 12
batch_size: 2
layout: "NTHWC"
in_len: 13
out_len: 12
split_mode: "uneven"

shuffle_seed: 1
rescale_method: "01"
downsample_dict: null
verbose: false
preprocess: true

# model settings
MODEL:
input_keys: ["input"]
output_keys: ["vil"]
input_shape: [13, 384, 384, 1]
target_shape: [12, 384, 384, 1]
base_units: 128
scale_alpha: 1.0

enc_depth: [1, 1]
dec_depth: [1, 1]
enc_use_inter_ffn: true
dec_use_inter_ffn: true
dec_hierarchical_pos_embed: false

downsample: 2
downsample_type: "patch_merge"
upsample_type: "upsample"

num_global_vectors: 8
use_dec_self_global: false
dec_self_update_global: true
use_dec_cross_global: false
use_global_vector_ffn: false
use_global_self_attn: true
separate_global_qkv: true
global_dim_ratio: 1

self_pattern: "axial"
cross_self_pattern: "axial"
cross_pattern: "cross_1x1"
dec_cross_last_n_frames: null

attn_drop: 0.1
proj_drop: 0.1
ffn_drop: 0.1
num_heads: 4

ffn_activation: "gelu"
gated_ffn: false
norm_layer: "layer_norm"
padding_type: "zeros"
pos_embed_type: "t+h+w"
use_relative_pos: true
self_attn_use_final_proj: true
dec_use_first_self_attn: false

z_init_method: "zeros"
initial_downsample_type: "stack_conv"
initial_downsample_activation: "leaky_relu"
initial_downsample_stack_conv_num_layers: 3
initial_downsample_stack_conv_dim_list: [16, 64, 128]
initial_downsample_stack_conv_downscale_list: [3, 2, 2]
initial_downsample_stack_conv_num_conv_list: [2, 2, 2]
checkpoint_level: 2

attn_linear_init_mode: "0"
ffn_linear_init_mode: "0"
conv_init_mode: "0"
down_up_linear_init_mode: "0"
norm_init_mode: "0"


# training settings
TRAIN:
epochs: 100
save_freq: 20
eval_during_train: true
eval_freq: 10
lr_scheduler:
epochs: ${TRAIN.epochs}
learning_rate: 0.001
by_epoch: true
min_lr_ratio: 1.0e-3
wd: 0.0
batch_size: 1
pretrained_model_path: null
checkpoint_path: null
start_date: null
end_date: [2019, 1, 1]


# evaluation settings
EVAL:
pretrained_model_path: ./checkpoint/sevir/earthformer_sevir.pdparams
compute_metric_by_batch: false
eval_with_no_grad: true
batch_size: 1
end_date: [2019, 6, 1]

metrics_mode: "0"
metrics_list: ["csi", "pod", "sucr", "bias"]
threshold_list: [16, 74, 133, 160, 181, 219]


TEST:
pretrained_model_path: ./checkpoint/sevir/earthformer_sevir.pdparams
compute_metric_by_batch: true
eval_with_no_grad: true
batch_size: 1
start_date: [2019, 6, 1]
end_date: null

INFER:
pretrained_model_path: ./checkpoint/sevir/earthformer_sevir.pdparams
export_path: ./inference/earthformer/sevir
pdmodel_path: ${INFER.export_path}.pdmodel
pdpiparams_path: ${INFER.export_path}.pdiparams
device: gpu
engine: native
precision: fp32
onnx_path: ${INFER.export_path}.onnx
ir_optim: true
min_subgraph_size: 10
gpu_mem: 4000
gpu_id: 0
max_batch_size: 16
num_cpu_threads: 4
batch_size: 1
data_path: ./datasets/sevir/vil/2019/SEVIR_VIL_STORMEVENTS_2019_0701_1231.h5
in_len: 13
out_len: 12
sevir_vis_save: ./inference/earthformer/sevir/vis
layout: "NTHWC"
plot_stride: 2
logging_prefix: "Cuboid_SEVIR"
interval_real_time: 5
data_type: "vil"
rescale_method: "01"
Loading