code: def test_integration_on_gpu(self):
      train_gen = some_data_generator(20)
      valid_gen = some_data_generator(20)
      torch.manual_seed(42)
      self.pytorch_network = nn.Linear(1, 1)
      self.loss_function = nn.MSELoss()
      self.optimizer = torch.optim.SGD(
          self.pytorch_network.parameters(), lr=1e-3
      )
      device = torch.device("cuda:0")
      self.model = Model(
          self.pytorch_network,
          self.optimizer,
          self.loss_function,
          device=device,
      )
      gradient_tracker = GradientTracker()
  
      self.model.fit_generator(
          train_gen,
          valid_gen,
          epochs=10,
          steps_per_epoch=5,
          callbacks=[gradient_tracker],
      )
  
imports: import math
  from tempfile import TemporaryDirectory
  from unittest import TestCase, skipIf
  from unittest.mock import ANY, MagicMock, call
  import torch
  import torch.nn
  from tests.framework.tools import some_data_generator
  from poutyne import GradientTracker, Model, TensorBoardGradientTracker, WeightsGradientsStatsTracker
label_desc: Use image node_id 3 for calling the GradientTrackerTest obj's underlying member method code with example usage: obj.test_integration_on_gpu() without return types