class_docstr: The Wide and Deep model used for recommendation.
  
  # Arguments
  class_num: The number of classes. Positive int.
  column_info: An instance of ColumnFeatureInfo.
  model_type: String. 'wide', 'deep' and 'wide_n_deep' are supported. Default is 'wide_n_deep'.
  hidden_layers: Units of hidden layers for the deep model.
                 Tuple of positive int. Default is (40, 20, 10).
class_docstr_tok: ["The","Wide","and","Deep","model","used","for","recommendation",".","#","Arguments","class_num",":","The","number","of","classes",".","Positive","int",".","column_info",":","An","instance","of","ColumnFeatureInfo",".","model_type",":","String",".","'wide","'",",","'deep","'","and","'wide_n_deep","'","are","supported",".","Default","is","'wide_n_deep","'",".","hidden_layers",":","Units","of","hidden","layers","for","the","deep","model",".","Tuple","of","positive","int",".","Default","is","(","40",",","20",",","10",")","."]
code: def build_model(self):
      wide_dims = sum(self.wide_base_dims) + sum(self.wide_cross_dims)
      input_wide = Input(shape=(wide_dims,))
      input_ind = Input(shape=(sum(self.indicator_dims),))
      input_emb = Input(shape=(len(self.embed_in_dims),))
      input_con = Input(shape=(len(self.continuous_cols),))
  
      wide_linear = SparseDense(self.class_num)(input_wide)
  
      if self.model_type == "wide":
          out = Activation("softmax")(wide_linear)
          model = Model(input_wide, out)
      elif self.model_type == "deep":
          (input_deep, merge_list) = self._deep_merge(
              input_ind, input_emb, input_con
          )
          deep_linear = self._deep_hidden(merge_list)
          out = Activation("softmax")(deep_linear)
          model = Model(input_deep, out)
      elif self.model_type == "wide_n_deep":
          (input_deep, merge_list) = self._deep_merge(
              input_ind, input_emb, input_con
          )
          deep_linear = self._deep_hidden(merge_list)
          merged = merge([wide_linear, deep_linear], "sum")
          out = Activation("softmax")(merged)
          model = Model([input_wide] + input_deep, out)
  
      else:
          raise TypeError(
              "Unsupported model_type: %s" % self.model_type
          )
  
      return model
  
file_path: analytics-zoo/pyzoo/zoo/models/recommendation/wide_and_deep.py
imports: import sys
  from zoo.models.common import *
  from zoo.models.recommendation import Recommender
  from zoo.common.utils import callZooFunc
  from zoo.pipeline.api.keras.layers import *
label_desc: Use image node_id 2 for calling the WideAndDeep obj's underlying member method code with example usage: obj.build_model() and returns: model