code: def fit(self, X, y, **fit_params):
      X = torch.as_tensor(X)
      y = torch.as_tensor(y)
      dataset = torch.utils.data.TensorDataset(X, y)
      dataloader = torch.utils.data.DataLoader(dataset, batch_size=64)
      optimizer = torch.optim.SGD(self.module.parameters(), lr=0.01)
  
      self.module = self.accelerator.prepare(self.module)
      optimizer = self.accelerator.prepare(optimizer)
      dataloader = self.accelerator.prepare(dataloader)
  
      # training
      self.module.train()
      for epoch in range(5):
          for source, targets in dataloader:
              optimizer.zero_grad()
              output = self.module(source)
              loss = nn.functional.nll_loss(output, targets)
              self.accelerator.backward(loss)
              optimizer.step()
  
      return self
  
file_path: skorch/examples/accelerate-multigpu/run-no-skorch.py
imports: import numpy
  import torch
  from accelerate import Accelerator
  from sklearn.datasets import make_classification
  from sklearn.model_selection import cross_validate
  from sklearn.base import BaseEstimator
  from torch import nn
label_desc: Use image node_id 2 for calling the Net obj's underlying member method code with example usage: obj.fit(X, y) and returns: self