class_docstr: An e2e wrapper of inference model.
      
code: def from_pretrained(cls, config, checkpoint="checkpoint_best.pt"):
      import os
      from ..utils import recursive_config
      from ..tasks import Task
  
      config = recursive_config(config)
      mmtask = Task.config_task(config)
      checkpoint_path = os.path.join(config.eval.save_path, checkpoint)
      mmtask.build_model(checkpoint=checkpoint_path)
      # TODO(huxu): make the video encoder configurable.
      from ..processors.models.s3dg import S3D
  
      video_encoder = S3D("pretrained_models/s3d_dict.npy", 512)
      video_encoder.load_state_dict(
          torch.load("pretrained_models/s3d_howto100m.pth")
      )
      from transformers import AutoTokenizer
  
      tokenizer = AutoTokenizer.from_pretrained(
          config.dataset.bert_name, use_fast=config.dataset.use_fast
      )
      from ..processors import Aligner
  
      aligner = Aligner(config.dataset)
      return (
          MMPTModel(config, mmtask.model, video_encoder),
          tokenizer,
          aligner,
      )
  
imports: import torch
  from torch import nn
  from .None import transformermodel
label_desc: Use image node_id 1 for calling the MMPTModel obj's underlying member method code with example usage: obj.from_pretrained(cls, config, checkpoint) and returns: MMPTModel,  tokenizer,  aligner