Skip to content

Reproducing NeurIPS paper Fig. 6 results: predictions have no longitudinal dimension. #12

@blutjens

Description

@blutjens

What is the expected shape of the preds variable in metrics.py -> LLweighted_RMSE_Climax()? Following the instructions in README_emulator.md I get a shape which is missing the longitude dimension.

In more detail, I have been following the instructions to reproduce the values in Fig. 6 of the camera-ready NeurIPS paper, but am getting some issues. I am running this suggested command from the README:

python emulator/run.py experiment=single_emulator/unet/NorESM2-LM_unet_tas+pr_run-01.yaml logger=none seed=3423

After training for 50 epochs, trainer.test() returns similar values to paper Fig. 6 : test/ssp245_NorESM2-LM/tas/llrmse_climax 0.3184917569160461. However, the shape of the variable preds in LLweighted_RMSE_Climax (which I believe is the metric used in Fig. 6) has the shape (4, 12, 2, 96). This is missing the longitude dimension. The header in metrics.py says the shape should be (batch_size / N, time, lon, lat) which would be (4, 12, 144, 96).

P.s:
During debugging I tried setting datamodule.channels_last = True, which gives me a shape with swapped lat-lon: (4, 12, 96, 144). But, with that I am get an llrmse_climax around ~ 0.024 which is significantly lower than the results in Fig. 6. Also, the latitude weights assume that latitude is the last dimension:
LLweighted_RMSE_Climax() -> lat_size = y.shape[-1]
I also tried editing split_vector_by_variable() with no success.

I would greatly appreciate any pointers to resolve this issue. Thank you!

Metadata

Metadata

Labels

bugSomething isn't workingemulator

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions