docstr: Trains one epoch of the network in self.network
  
  Parameters
  ----------
  train_loader : a :class: `torch.utils.data.Dataloader`
      DataLoader with train set
docstr_tok: ["Trains","one","epoch","of","the","network","in","self.network","Parameters","--","--","--","--","--","train_loader",":","a",":","class",":","`","torch.utils.data.Dataloader","`","DataLoader","with","train","set"]
code: def _train_epoch(self, train_loader):
      """
      Trains one epoch of the network in self.network
  
      Parameters
      ----------
      train_loader : a :class: `torch.utils.data.Dataloader`
          DataLoader with train set
      """
      self.network.train()
  
      for batch_idx, X in enumerate(train_loader):
          self._callback_container.on_batch_begin(batch_idx)
  
          batch_logs = self._train_batch(X)
  
          self._callback_container.on_batch_end(batch_idx, batch_logs)
  
      epoch_logs = {"lr": self._optimizer.param_groups[-1]["lr"]}
      self.history.epoch_metrics.update(epoch_logs)
  
      return
  
imports: import torch
  import numpy
  from torch.utils.data import DataLoader
  from pytorch_tabnet import tab_network
  from pytorch_tabnet.utils import create_explain_matrix, filter_weights, SparsePredictDataset, PredictDataset, check_input, create_group_matrix
  from torch.nn.utils import clip_grad_norm_
  from pytorch_tabnet.pretraining_utils import create_dataloaders, validate_eval_set
  from pytorch_tabnet.metrics import UnsupMetricContainer, check_metrics, UnsupervisedLoss
  from pytorch_tabnet.abstract_model import TabModel
  import scipy
label_desc: Use image node_id 10 for calling the TabNetPretrainer obj's underlying member method code with example usage: obj._train_epoch(train_loader) without return types