code: def plot_llk(train_elbo, test_elbo):
      from pathlib import Path
  
      import matplotlib.pyplot as plt
      import pandas as pd
      import seaborn as sns
  
      Path("vae_results").mkdir(parents=True, exist_ok=True)
  
      plt.figure(figsize=(30, 10))
      sns.set_style("whitegrid")
      df1 = pd.DataFrame(
          {
              "Epoch": train_elbo.keys(),
              "ELBO": [-val for val in train_elbo.values()],
              "dataset": "Train",
          }
      )
      df2 = pd.DataFrame(
          {
              "Epoch": test_elbo.keys(),
              "ELBO": [-val for val in test_elbo.values()],
              "dataset": "Test",
          }
      )
      df = pd.concat([df1, df2], axis=0)
  
      # Create the FacetGrid with scatter plot
      g = sns.FacetGrid(df, height=4, aspect=1.5, hue="dataset")
      g.map(sns.scatterplot, "Epoch", "ELBO")
      g.map(sns.lineplot, "Epoch", "ELBO", linestyle="--")
      g.ax.yaxis.get_major_locator().set_params(integer=True)
      g.add_legend()
      plt.savefig("./vae_results/test_elbo_vae.png")
      plt.close("all")
  
imports: import torch
label_desc: Use image node_id 2 for calling a global function with example usage: plot_llk(train_elbo, test_elbo) without return types