class_docstr: Exponentially increases the learning rate between two boundaries over a number of
  iterations.
  Arguments:
      optimizer (torch.optim.Optimizer): wrapped optimizer.
      end_lr (float): the final learning rate.
      num_iter (int): the number of iterations over which the test occurs.
      last_epoch (int, optional): the index of last epoch. Default: -1.
class_docstr_tok: ["Exponentially","increases","the","learning","rate","between","two","boundaries","over","a","number","of","iterations",".","Arguments",":","optimizer","(","torch.optim.Optimizer",")",":","wrapped","optimizer",".","end_lr","(","float",")",":","the","final","learning","rate",".","num_iter","(","int",")",":","the","number","of","iterations","over","which","the","test","occurs",".","last_epoch","(","int",",","optional",")",":","the","index","of","last","epoch",".","Default",":","-1","."]
code: def get_lr(self):
      # In earlier Pytorch versions last_epoch starts at -1, while in recent versions
      # it starts at 0. We need to adjust the math a bit to handle this. See
      # discussion at: https://github.com/davidtvs/pytorch-lr-finder/pull/42
      if PYTORCH_VERSION < version.parse("1.1.0"):
          curr_iter = self.last_epoch + 1
          r = curr_iter / (self.num_iter - 1)
      else:
          r = self.last_epoch / (self.num_iter - 1)
  
      return [
          base_lr * (self.end_lr / base_lr) ** r
          for base_lr in self.base_lrs
      ]
  
imports: import os
  import copy
  import logging
  from packaging import version
  from .data_cls import BertDataBunch, InputExample, InputFeatures
  from tqdm.autonotebook import tqdm
  import matplotlib.pyplot
  from .learner_util import Learner
  from torch import nn
  from typing import List, Optional
  from .modeling import BertForMultiLabelSequenceClassification, XLNetForMultiLabelSequenceClassification, RobertaForMultiLabelSequenceClassification, DistilBertForMultiLabelSequenceClassification, CamembertForMultiLabelSequenceClassification, AlbertForMultiLabelSequenceClassification, ElectraForMultiLabelSequenceClassification, FlaubertForMultiLabelSequenceClassification
  from .bert_layers import BertLayerNorm
  from fastprogress.fastprogress import master_bar, progress_bar
  import torch
  import pandas
  import numpy
  from sklearn.metrics import roc_curve, auc
  from pathlib import Path
  from torch.optim.lr_scheduler import _LRScheduler, Optimizer
  from tensorboardX import SummaryWriter
  from transformers import WEIGHTS_NAME, BertConfig, BertForSequenceClassification, BertTokenizer, XLMConfig, XLMForSequenceClassification, XLMTokenizer, XLNetConfig, XLNetForSequenceClassification, XLNetTokenizer, RobertaConfig, RobertaForSequenceClassification, RobertaTokenizer, CamembertConfig, CamembertForSequenceClassification, CamembertTokenizer, AlbertConfig, AlbertForSequenceClassification, AlbertTokenizer, DistilBertConfig, DistilBertForSequenceClassification, DistilBertTokenizer, ElectraConfig, ElectraForSequenceClassification, ElectraTokenizer, FlaubertConfig, FlaubertForSequenceClassification, FlaubertTokenizer
  from transformers import AutoModelForSequenceClassification, AutoConfig
  from transformers.trainer_callback import TrainerCallback, TrainerControl, TrainerState, CallbackHandler, DefaultFlowCallback
label_desc: Use image node_id 2 for calling the ExponentialLR obj's underlying member method code with example usage: obj.get_lr() and returns: unknown