class_docstr: Simple neural tagging model
  Supports pytorch embedder models, multi-gpu training, KD from teacher models
  
  Args:
      embedder_model: pytorch embedder model (valid nn.Module model)
      word_vocab (Vocabulary): word vocabulary
      labels (List, optional): list of labels. Defaults to None
      use_crf (bool, optional): use CRF a the classifier (instead of Softmax). Defaults to False.
      device (str, optional): device backend. Defatuls to 'cpu'.
      n_gpus (int, optional): number of gpus. Default to 0.
docstr: Load a tagger model from given path
  
  Args:
      model_path (str): model path
  
      NeuralTagger: tagger model loaded from path
code: def load_model(cls, model_path: str):
      """
      Load a tagger model from given path
  
      Args:
          model_path (str): model path
  
          NeuralTagger: tagger model loaded from path
      """
      # Load a trained model and vocabulary from given path
      if not os.path.exists(model_path):
          raise FileNotFoundError
      with io.open(model_path + os.sep + "labels.txt") as fp:
          labels = [lines.strip() for lines in fp.readlines()]
  
      with io.open(model_path + os.sep + "w_vocab.dat", "rb") as fp:
          w_vocab = pickle.load(fp)
      # load model.bin into
      model_file_path = model_path + os.sep + "model.bin"
      if not os.path.exists(model_file_path):
          raise FileNotFoundError
      model = torch.load(model_file_path)
      new_class = cls(model, w_vocab, labels)
      crf_file_path = model_path + os.sep + "crf.bin"
      if os.path.exists(crf_file_path):
          new_class.use_crf = True
          new_class.crf = torch.load(crf_file_path)
      else:
          new_class.use_crf = False
      return new_class
  
imports: import io
  import logging
  import os
  import pickle
  from typing import List
  import numpy
  import torch
  import torch.optim
  from torch.nn import CrossEntropyLoss
  from torch.nn import functional
  from torch.utils.data import DataLoader, SequentialSampler, TensorDataset
  from tqdm import tqdm, trange
  from nlp_architect.data.sequential_tagging import TokenClsInputExample
  from nlp_architect.models import TrainableModel
  from nlp_architect.nn.torch.layers import CRF
  from nlp_architect.nn.torch.distillation import TeacherStudentDistill
  from nlp_architect.nn.torch.modules.embedders import IDCNN
  from nlp_architect.utils.metrics import tagging
  from nlp_architect.utils.text import Vocabulary, char_to_id
label_desc: Use image node_id 14 for calling the NeuralTagger obj's underlying member method code with example usage: obj.load_model(cls, model_path) and returns: new_class