class_docstr: ArcI Model.
  
  Examples:
      >>> model = ArcI()
      >>> model.params['num_blocks'] = 1
      >>> model.params['left_filters'] = [32]
      >>> model.params['right_filters'] = [32]
      >>> model.params['left_kernel_sizes'] = [3]
      >>> model.params['right_kernel_sizes'] = [3]
      >>> model.params['left_pool_sizes'] = [2]
      >>> model.params['right_pool_sizes'] = [4]
      >>> model.params['conv_activation_func'] = 'relu'
      >>> model.params['mlp_num_layers'] = 1
      >>> model.params['mlp_num_units'] = 64
      >>> model.params['mlp_num_fan_out'] = 32
      >>> model.params['mlp_activation_func'] = 'relu'
      >>> model.params['dropout_rate'] = 0.5
      >>> model.guess_and_fill_missing_params(verbose=0)
      >>> model.build()
class_docstr_tok: ["ArcI","Model",".","Examples",":",">",">",">","model","=","ArcI","(",")",">",">",">","model.params","[","'num_blocks","'","]","=","1",">",">",">","model.params","[","'left_filters","'","]","=","[","32","]",">",">",">","model.params","[","'right_filters","'","]","=","[","32","]",">",">",">","model.params","[","'left_kernel_sizes","'","]","=","[","3","]",">",">",">","model.params","[","'right_kernel_sizes","'","]","=","[","3","]",">",">",">","model.params","[","'left_pool_sizes","'","]","=","[","2","]",">",">",">","model.params","[","'right_pool_sizes","'","]","=","[","4","]",">",">",">","model.params","[","'conv_activation_func","'","]","=","'relu'",">",">",">","model.params","[","'mlp_num_layers","'","]","=","1",">",">",">","model.params","[","'mlp_num_units","'","]","=","64",">",">",">","model.params","[","'mlp_num_fan_out","'","]","=","32",">",">",">","model.params","[","'mlp_activation_func","'","]","=","'relu'",">",">",">","model.params","[","'dropout_rate","'","]","=","0.5",">",">",">","model.guess_and_fill_missing_params","(","verbose=0",")",">",">",">","model.build","(",")"]
docstr: Build model structure.
  
  ArcI use Siamese arthitecture.
docstr_tok: ["Build","model","structure",".","ArcI","use","Siamese","arthitecture","."]
code: def build(self):
      """
      Build model structure.
  
      ArcI use Siamese arthitecture.
      """
      input_left, input_right = self._make_inputs()
  
      embedding = self._make_embedding_layer()
      embed_left = embedding(input_left)
      embed_right = embedding(input_right)
  
      for i in range(self._params["num_blocks"]):
          embed_left = self._conv_pool_block(
              embed_left,
              self._params["left_filters"][i],
              self._params["left_kernel_sizes"][i],
              self._params["padding"],
              self._params["conv_activation_func"],
              self._params["left_pool_sizes"][i],
          )
          embed_right = self._conv_pool_block(
              embed_right,
              self._params["right_filters"][i],
              self._params["right_kernel_sizes"][i],
              self._params["padding"],
              self._params["conv_activation_func"],
              self._params["right_pool_sizes"][i],
          )
  
      rep_left = keras.layers.Flatten()(embed_left)
      rep_right = keras.layers.Flatten()(embed_right)
      concat = keras.layers.Concatenate(axis=1)([rep_left, rep_right])
      dropout = keras.layers.Dropout(rate=self._params["dropout_rate"])(
          concat
      )
      mlp = self._make_multi_layer_perceptron_layer()(dropout)
  
      inputs = [input_left, input_right]
      x_out = self._make_output_layer()(mlp)
      self._backend = keras.Model(inputs=inputs, outputs=x_out)
  
file_path: MatchZoo/matchzoo/models/arci.py
imports: import typing
  import keras
  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 ArcI obj's underlying member method code with example usage: obj.build() without return types