code: def prepare_data(self):
      # HACK: https://github.com/pytorch/vision/issues/1938
      # But, we shouldn't have to do this: https://github.com/replicate/keepsake/issues/551
      opener = urllib.request.build_opener()
      opener.addheaders = [("User-agent", "Mozilla/5.0")]
      urllib.request.install_opener(opener)
  
      # download only
      MNIST(
          "/tmp/keepsake-test-mnist",
          train=True,
          download=True,
          transform=transforms.ToTensor(),
      )
  
imports: import json
  from glob import glob
  import os
  import torch
  from torch.nn import functional
  from torch import nn
  from pytorch_lightning.core.lightning import LightningModule
  from pytorch_lightning import Trainer
  from torch.optim import Adam
  from torch.utils.data import DataLoader, random_split, Subset
  from torch.utils.data.dataset import Dataset
  from torchvision.datasets import MNIST
  from torchvision import transforms
  import pytest
  import urllib
  from keepsake.pl_callback import KeepsakeCallback
label_desc: Use image node_id 3 for calling the ModelNoValidation obj's underlying member method code with example usage: obj.prepare_data() without return types