|
| 1 | +# %% |
| 2 | +import os |
| 3 | +import numpy as np |
| 4 | +import pandas as pd |
| 5 | +import matplotlib.pyplot as plt |
| 6 | + |
| 7 | + |
| 8 | + |
| 9 | +# %% |
| 10 | +root = "/Users/shahine/Documents/Research/MIT/code/repos/climemu-private/paper/intermodel/wandb/" |
| 11 | +train_losses = {"MIROC6": pd.read_csv(os.path.join(root, 'miroc_train.csv')), |
| 12 | + "MPI-ESM1-2-LR": pd.read_csv(os.path.join(root, 'mpi_train.csv')), |
| 13 | + "ACCESS-ESM1-5": pd.read_csv(os.path.join(root, 'access_train.csv'))} |
| 14 | + |
| 15 | +val_losses = {"MIROC6": pd.read_csv(os.path.join(root, 'miroc_val.csv')), |
| 16 | + "MPI-ESM1-2-LR": pd.read_csv(os.path.join(root, 'mpi_val.csv')), |
| 17 | + "ACCESS-ESM1-5": pd.read_csv(os.path.join(root, 'access_val.csv'))} |
| 18 | + |
| 19 | +grad_df = {"MIROC6": pd.read_csv(os.path.join(root, 'miroc_grad.csv')), |
| 20 | + "MPI-ESM1-2-LR": pd.read_csv(os.path.join(root, 'mpi_grad.csv')), |
| 21 | + "ACCESS-ESM1-5": pd.read_csv(os.path.join(root, 'access_grad.csv'))} |
| 22 | + |
| 23 | + |
| 24 | + |
| 25 | +# %% |
| 26 | +fig, ax = plt.subplots(1, 2, figsize=(15, 5), gridspec_kw={'width_ratios': [1.5, 1]}) |
| 27 | + |
| 28 | +train_df = train_losses['MIROC6'] |
| 29 | +val_df = val_losses['MIROC6'] |
| 30 | +ax[0].plot(train_df['Step'], train_df.iloc[:, 1], label='MIROC6 Training Loss', alpha=0.5, color='#0072B2', zorder=0) |
| 31 | +ax[0].plot(val_df['Step'], val_df.iloc[:, 1], ls='--', label='MIROC6 Validation Loss', color='#0072B2') |
| 32 | + |
| 33 | +train_df = train_losses['MPI-ESM1-2-LR'] |
| 34 | +val_df = val_losses['MPI-ESM1-2-LR'] |
| 35 | +ax[0].plot(train_df['Step'], train_df.iloc[:, 1], label='MPI-ESM1-2-LR Training Loss', alpha=0.5, color='#E69F00', zorder=0) |
| 36 | +ax[0].plot(val_df['Step'], val_df.iloc[:, 1], ls='--', label='MPI-ESM1-2-LR Validation Loss', color='#E69F00') |
| 37 | + |
| 38 | +train_df = train_losses['ACCESS-ESM1-5'] |
| 39 | +val_df = val_losses['ACCESS-ESM1-5'] |
| 40 | +ax[0].plot(train_df['Step'], train_df.iloc[:, 1], label='ACCESS-ESM1-5 Training Loss', alpha=0.5, color='#CC79A7', zorder=0) |
| 41 | +ax[0].plot(val_df['Step'], val_df.iloc[:, 1], ls='--', label='ACCESS-ESM1-5 Validation Loss', color='#CC79A7') |
| 42 | + |
| 43 | +ax[0].legend(frameon=False, fontsize=12, loc='lower left') |
| 44 | +ax[0].set_yscale('log') |
| 45 | +ax[0].set_xscale('log') |
| 46 | +ax[0].set_xlabel("Training Steps", fontsize=14) |
| 47 | +ax[0].set_ylabel("Loss", fontsize=14) |
| 48 | +ax[0].margins(0.01) |
| 49 | + |
| 50 | +grad_df_miroc = grad_df['MIROC6'] |
| 51 | +ax[1].plot(grad_df_miroc['Step'], grad_df_miroc.iloc[:, 1], label='MIROC6 Gradient Norm', alpha=0.5, color='#0072B2') |
| 52 | + |
| 53 | +grad_df_mpi = grad_df['MPI-ESM1-2-LR'] |
| 54 | +ax[1].plot(grad_df_mpi['Step'], grad_df_mpi.iloc[:, 1], label='MPI-ESM1-2-LR Gradient Norm', alpha=0.5, color='#E69F00') |
| 55 | + |
| 56 | +grad_df_access = grad_df['ACCESS-ESM1-5'] |
| 57 | +ax[1].plot(grad_df_access['Step'], grad_df_access.iloc[:, 1], label='ACCESS-ESM1-5 Gradient Norm', alpha=0.5, color='#CC79A7') |
| 58 | + |
| 59 | +ax[1].legend(frameon=False, fontsize=12) |
| 60 | +ax[1].set_yscale('log') |
| 61 | +ax[1].set_xscale('log') |
| 62 | +ax[1].set_xlabel("Training Steps", fontsize=14) |
| 63 | +ax[1].set_ylabel("Gradient Norm", fontsize=14) |
| 64 | +ax[1].margins(0.01) |
| 65 | + |
| 66 | +plt.savefig("losses.jpg", dpi=300, bbox_inches="tight") |
| 67 | + |
| 68 | +# %% |
0 commit comments