docstr: dense_features shape: [batch_size, num of dense features]
  sparse_features shape: [num_of_sparse_features, batch_size]
docstr_tok: ["dense_features","shape",":","[","batch_size",",","num","of","dense","features","]","sparse_features","shape",":","[","num_of_sparse_features",",","batch_size","]"]
code: def inference(self, dense_features, sparse_features):
      """
      dense_features shape: [batch_size, num of dense features]
      sparse_features shape: [num_of_sparse_features, batch_size]
      """
  
      sparse_emb_vecs = list(
          map(
              lambda pair: pair[1](pair[0]),
              zip(
                  tf.unstack(sparse_features, axis=1),
                  self._latent_factors,
              ),
          )
      )
  
      dense_emb_vec = self._mlp_bot(dense_features)
  
      if self._dot_interaction is not None:
          prediction = self._mlp_top(
              tf.concat(
                  [
                      dense_emb_vec,
                      self._dot_interaction(
                          sparse_emb_vecs + [dense_emb_vec]
                      ),
                  ],
                  axis=1,
              )
          )
      else:
          prediction = self._mlp_top(
              tf.concat(sparse_emb_vecs + [dense_emb_vec], axis=1)
          )
  
      if 0.0 < self._loss_threshold and self._loss_threshold < 1.0:
          prediction = tf.clip_by_value(
              prediction,
              self._loss_threshold,
              1.0 - self._loss_threshold,
          )
  
      return tf.reshape(prediction, [-1])
  
file_path: openrec/openrec/tf2/recommenders/dlrm.py
imports: import sys
  import tensorflow
  from tensorflow.keras import Model
  from openrec.tf2.modules import LatentFactor, SecondOrderFeatureInteraction, MLP
label_desc: Use image node_id 3 for calling the DLRM obj's underlying member method code with example usage: obj.inference(dense_features, sparse_features) and returns: tf