-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy path4_evaluate.smk
55 lines (46 loc) · 2.41 KB
/
4_evaluate.smk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# Save unnormalized dataset
rule unnormalize_dataset:
input:
# location of metadata depends on data_source, run_id, and model_id
metadata_filepath = "3_train/out/{data_source}/{run_id}/{model_id}_metadata.npz",
# path to train, valid, or test.npz depends on data_source but not on run_id or model_id
dataset_filepath = "2_process/out/{data_source}/{dataset}.npz"
output:
output_filepath = "4_evaluate/out/{data_source}/{run_id}/{model_id}/unnormalized_{dataset}.npz"
script:
"4_evaluate/src/unnormalize_dataset.py"
# Make predictions
rule predict_dataset:
input:
# locations of model weights and metadata depend on data_source, run_id, and model_id
weights_filepath = "3_train/out/{data_source}/{run_id}/{model_id}_weights.pt",
metadata_filepath = "3_train/out/{data_source}/{run_id}/{model_id}_metadata.npz",
# path to train, valid, or test.npz depends on data_source but not on run_id or model_id
dataset_filepath = "2_process/out/{data_source}/{dataset}.npz",
output:
predictions_filepath = "4_evaluate/out/{data_source}/{run_id}/{model_id}/preds_{dataset}.npz"
script:
"4_evaluate/src/predict_dataset.py"
# Interpolate predictions to observation locations
rule interpolate_predictions:
input:
predictions_filepath = "4_evaluate/out/{data_source}/{run_id}/{model_id}/preds_{dataset}.npz",
# location of metadata depends on data_source, run_id, and model_id
metadata_filepath = "3_train/out/{data_source}/{run_id}/{model_id}_metadata.npz",
# path to train, valid, or test.npz depends on data_source but not on run_id or model_id
dataset_filepath = "2_process/out/{data_source}/{dataset}.npz",
obs_file = "2_process/tmp/{data_source}/temperature_observations_interpolated.csv"
params:
batch_size = 100
output:
interpolated_predictions_filepath = "4_evaluate/out/{data_source}/{run_id}/{model_id}/interpolated_predictions_{dataset}.csv"
script:
"4_evaluate/src/interpolate_predictions.py"
# Write metrics to file
rule write_metrics:
input:
interpolated_predictions_filepath = "4_evaluate/out/{data_source}/{run_id}/{model_id}/interpolated_predictions_{dataset}.csv",
output:
metrics_filepath = "4_evaluate/out/{data_source}/{run_id}/{model_id}/metrics_{dataset}.csv"
script:
"4_evaluate/src/write_metrics.py"