class_docstr: The Session Recommender model used for recommendation.
  
  # Arguments
   item_ount: The number of distinct items. Positive integer.
   item_embed: The output size of embedding layer. Positive integer.
   rnn_hidden_layers: Units of hidden layers for the mlp model. Array of positive integers.
   session_length: The max number of items in the sequence of a session
   include_history: Whether to include purchase history. Boolean. Default is true.
   mlp_hidden_layers: Units of hidden layers for the mlp model. Array of positive integers.
   history_length: The max number of items in the sequence of historical purchase
   
code: def build_model(self):
      input_rnn = Input(shape=(self.session_length,))
      session_table = Embedding(
          self.item_count + 1, self.item_embed, init="uniform"
      )(input_rnn)
  
      gru = GRU(self.rnn_hidden_layers[0], return_sequences=True)(
          session_table
      )
      for hidden in range(1, len(self.rnn_hidden_layers) - 1):
          gru = GRU(
              self.rnn_hidden_layers[hidden], return_sequences=True
          )(gru)
      gru_last = GRU(
          self.rnn_hidden_layers[-1], return_sequences=False
      )(gru)
      rnn = Dense(self.item_count)(gru_last)
  
      if self.include_history:
          input_mlp = Input(shape=(self.history_length,))
          his_table = Embedding(
              self.item_count + 1, self.item_embed, init="uniform"
          )(input_mlp)
          embedSum = KerasLayerWrapper(Sum(dimension=2))(his_table)
          flatten = Flatten()(embedSum)
          mlp = Dense(self.mlp_hidden_layers[0], activation="relu")(
              flatten
          )
          for hidden in range(1, len(self.mlp_hidden_layers)):
              mlp = Dense(
                  self.mlp_hidden_layers[hidden], activation="relu"
              )(mlp)
          mlp_last = Dense(self.item_count)(mlp)
          merged = merge(inputs=[rnn, mlp_last], mode="sum")
          out = Activation(activation="softmax")(merged)
          model = Model(input=[input_rnn, input_mlp], output=out)
      else:
          out = Activation(activation="softmax")(rnn)
          model = Model(input=input_rnn, output=out)
      return model
  
file_path: analytics-zoo/pyzoo/zoo/models/recommendation/session_recommender.py
imports: import sys
  from zoo.models.common import KerasZooModel
  from zoo.models.recommendation import Recommender
  from zoo.pipeline.api.keras.layers import *
  from zoo.pipeline.api.keras.models import *
  from zoo.common.utils import callZooFunc
label_desc: Use image node_id 2 for calling the SessionRecommender obj's underlying member method code with example usage: obj.build_model() and returns: model