class_docstr: Poly-encoder Agent that ingests image features.
  
  Agent that allows encoding image features and adding or concatenating them to the
  context encoding.
class_docstr_tok: ["Poly-encoder","Agent","that","ingests","image","features",".","Agent","that","allows","encoding","image","features","and","adding","or","concatenating","them","to","the","context","encoding","."]
docstr: Return built model.
docstr_tok: ["Return","built","model","."]
code: def build_model(self, states=None):
      """
      Return built model.
      """
      return ImagePolyencoderModule(self.opt, self.dict, self.NULL_IDX)
  
imports: from typing import Optional
  from parlai.core.params import ParlaiParser
  from parlai.core.opt import Opt
  from typing import Any, Dict
  import torch
  from parlai.agents.image_seq2seq.modules import ContextWithImageEncoder
  from parlai.agents.transformer.polyencoder import PolyencoderAgent, PolyEncoderModule
  from parlai.core.torch_agent import Batch
  from parlai.core.torch_image_agent import TorchImageAgent
  from parlai.utils.misc import warn_once
label_desc: Use image node_id 2 for calling the ImagePolyencoderAgent obj's underlying member method code with example usage: obj.build_model(states) and returns: ImagePolyencoderModule