class_docstr: ArcII Model.
  
  Examples:
      >>> model = ArcII()
      >>> model.params['embedding_output_dim'] = 300
      >>> model.params['num_blocks'] = 2
      >>> model.params['kernel_1d_count'] = 32
      >>> model.params['kernel_1d_size'] = 3
      >>> model.params['kernel_2d_count'] = [16, 32]
      >>> model.params['kernel_2d_size'] = [[3, 3], [3, 3]]
      >>> model.params['pool_2d_size'] = [[2, 2], [2, 2]]
      >>> model.guess_and_fill_missing_params(verbose=0)
      >>> model.build()
docstr: Build model structure.
  
  ArcII has the desirable property of letting two sentences meet before
  their own high-level representations mature.
code: def build(self):
      """
      Build model structure.
  
      ArcII has the desirable property of letting two sentences meet before
      their own high-level representations mature.
      """
      input_left, input_right = self._make_inputs()
  
      embedding = self._make_embedding_layer()
      embed_left = embedding(input_left)
      embed_right = embedding(input_right)
  
      # Phrase level representations
      conv_1d_left = keras.layers.Conv1D(
          self._params["kernel_1d_count"],
          self._params["kernel_1d_size"],
          padding=self._params["padding"],
      )(embed_left)
      conv_1d_right = keras.layers.Conv1D(
          self._params["kernel_1d_count"],
          self._params["kernel_1d_size"],
          padding=self._params["padding"],
      )(embed_right)
  
      # Interaction
      matching_layer = matchzoo.layers.MatchingLayer(
          matching_type="plus"
      )
      embed_cross = matching_layer([conv_1d_left, conv_1d_right])
  
      for i in range(self._params["num_blocks"]):
          embed_cross = self._conv_pool_block(
              embed_cross,
              self._params["kernel_2d_count"][i],
              self._params["kernel_2d_size"][i],
              self._params["padding"],
              self._params["activation"],
              self._params["pool_2d_size"][i],
          )
  
      embed_flat = keras.layers.Flatten()(embed_cross)
      x = keras.layers.Dropout(rate=self._params["dropout_rate"])(
          embed_flat
      )
  
      inputs = [input_left, input_right]
      x_out = self._make_output_layer()(x)
      self._backend = keras.Model(inputs=inputs, outputs=x_out)
  
file_path: MatchZoo/matchzoo/models/arcii.py
imports: import typing
  import keras
  import matchzoo
  from matchzoo.engine.base_model import BaseModel
  from matchzoo.engine.param import Param
  from matchzoo.engine.param_table import ParamTable
  from matchzoo.engine import hyper_spaces
label_desc: Use image node_id 2 for calling the ArcII obj's underlying member method code with example usage: obj.build() without return types