code: def test_multiple_learning_rates(self):
      train_gen = some_data_generator(20)
      valid_gen = some_data_generator(20)
      logger = TensorBoardLogger(self.writer)
      lrs = [BaseCSVLoggerTest.lr, BaseCSVLoggerTest.lr / 2]
      optimizer = torch.optim.SGD(
          [
              dict(params=[self.pytorch_network.weight], lr=lrs[0]),
              dict(params=[self.pytorch_network.bias], lr=lrs[1]),
          ]
      )
      model = Model(self.pytorch_network, optimizer, self.loss_function)
      history = model.fit_generator(
          train_gen,
          valid_gen,
          epochs=self.num_epochs,
          steps_per_epoch=5,
          callbacks=[logger],
      )
      self._test_logging(history, lrs=lrs)
  
imports: import csv
  import os
  from tempfile import TemporaryDirectory
  from unittest import TestCase, main, skipIf
  from unittest.mock import MagicMock, call
  import torch
  import torch.nn
  from tests.framework.tools import some_data_generator
  from poutyne import AtomicCSVLogger, Callback
  from poutyne import CSVLogger
  from poutyne import Model, TensorBoardLogger
label_desc: Use image node_id 4 for calling the BaseTensorBoardLoggerTest obj's underlying member method code with example usage: obj.test_multiple_learning_rates() without return types