code: def objective(trial):
      train_dataset = torchvision.datasets.FashionMNIST(
          DIR,
          train=True,
          download=True,
          transform=torchvision.transforms.ToTensor(),
      )
      train_loader = torch.utils.data.DataLoader(
          torch.utils.data.Subset(
              train_dataset, list(range(N_TRAIN_EXAMPLES))
          ),
          batch_size=BATCHSIZE,
          shuffle=True,
      )
  
      val_dataset = torchvision.datasets.FashionMNIST(
          DIR, train=False, transform=torchvision.transforms.ToTensor()
      )
      val_loader = torch.utils.data.DataLoader(
          torch.utils.data.Subset(
              val_dataset, list(range(N_VALID_EXAMPLES))
          ),
          batch_size=BATCHSIZE,
          shuffle=True,
      )
      model = define_model(trial).to(DEVICE)
  
      optimizer = torch.optim.Adam(
          model.parameters(),
          trial.suggest_float("lr", 1e-5, 1e-1, log=True),
      )
  
      for epoch in range(10):
          train_model(model, optimizer, train_loader)
      flops, accuracy = eval_model(model, val_loader)
      return flops, accuracy
  
file_path: optuna/tutorial/20_recipes/002_multi_objective.py
imports: import torch
  import torch.nn
  import torch.nn.functional
  import torchvision
  from fvcore.nn import FlopCountAnalysis
  import optuna
label_desc: Use image node_id 4 for calling a global function with example usage: objective(trial) and returns: flops,  accuracy