class_docstr: CDSSM Model implementation.
  
  Learning Semantic Representations Using Convolutional Neural Networks
  for Web Search. (2014a)
  A Latent Semantic Model with Convolutional-Pooling Structure for
  Information Retrieval. (2014b)
  
  Examples:
      >>> model = CDSSM()
      >>> model.params['optimizer'] = 'adam'
      >>> model.params['filters'] =  32
      >>> model.params['kernel_size'] = 3
      >>> model.params['conv_activation_func'] = 'relu'
      >>> model.guess_and_fill_missing_params(verbose=0)
      >>> model.build()
class_docstr_tok: ["CDSSM","Model","implementation",".","Learning","Semantic","Representations","Using","Convolutional","Neural","Networks","for","Web","Search",".","(","2014a",")","A","Latent","Semantic","Model","with","Convolutional-Pooling","Structure","for","Information","Retrieval",".","(","2014b",")","Examples",":",">",">",">","model","=","CDSSM","(",")",">",">",">","model.params","[","'optimizer","'","]","=","'adam'",">",">",">","model.params","[","'filters","'","]","=","32",">",">",">","model.params","[","'kernel_size","'","]","=","3",">",">",">","model.params","[","'conv_activation_func","'","]","=","'relu'",">",">",">","model.guess_and_fill_missing_params","(","verbose=0",")",">",">",">","model.build","(",")"]
docstr: Apply conv and maxpooling operation towards to each letter-ngram.
  
  The input shape is `fixed_text_length`*`number of letter-ngram`,
  as described in the paper, `n` is 3, `number of letter-trigram`
  is about 30,000 according to their observation.
  
  :return: Wrapped Keras `Layer` as CDSSM network, tensor in tensor out.
docstr_tok: ["Apply","conv","and","maxpooling","operation","towards","to","each","letter-ngram",".","The","input","shape","is","`","fixed_text_length","`","*","`","number","of","letter-ngram","`",",","as","described","in","the","paper",",","`","n","`","is","3",",","`","number","of","letter-trigram","`","is","about","30,000","according","to","their","observation",".",":","return",":","Wrapped","Keras","`","Layer","`","as","CDSSM","network",",","tensor","in","tensor","out","."]
code: def _create_base_network(self) -> typing.Callable:
      """
      Apply conv and maxpooling operation towards to each letter-ngram.
  
      The input shape is `fixed_text_length`*`number of letter-ngram`,
      as described in the paper, `n` is 3, `number of letter-trigram`
      is about 30,000 according to their observation.
  
      :return: Wrapped Keras `Layer` as CDSSM network, tensor in tensor out.
      """
  
      def _wrapper(x: TensorType):
          # Apply 1d convolutional on each word_ngram (lt).
          # Input shape: (batch_size, num_tri_letters, 90000)
          # Sequence of num_tri_letters vectors of 90000d vectors.
          x = keras.layers.Conv1D(
              filters=self._params["filters"],
              kernel_size=self._params["kernel_size"],
              strides=self._params["strides"],
              padding=self._params["padding"],
              activation=self._params["conv_activation_func"],
              kernel_initializer=self._params["w_initializer"],
              bias_initializer=self._params["b_initializer"],
          )(x)
          # Apply max pooling by take max at each dimension across
          # all word_trigram features.
          x = keras.layers.Dropout(self._params["dropout_rate"])(x)
          x = keras.layers.GlobalMaxPool1D()(x)
          # Apply a none-linear transformation use a tanh layer.
          x = self._make_multi_layer_perceptron_layer()(x)
          return x
  
      return _wrapper
  
file_path: MatchZoo/matchzoo/models/cdssm.py
imports: import typing
  import keras
  from keras.models import Model
  from matchzoo.engine.base_model import BaseModel
  from matchzoo.engine.param import Param
  from matchzoo.engine.param_table import ParamTable
  from matchzoo import preprocessors
  from matchzoo.utils import TensorType
label_desc: Use image node_id 2 for calling the CDSSM obj's underlying member method code with example usage: obj._create_base_network() and returns: _wrapper, x