code: def _build_training_graph(self):
      with tf.variable_scope(self._scope, reuse=self._reuse):
          if self._mlp_pretrain:
              self._pretrain_input = tf.placeholder(
                  tf.float32,
                  shape=(32, self._shape[1]),
                  name="pretrain_input",
              )
              trans_embedding = MultiLayerFC(
                  in_tensor=self._pretrain_input,
                  dims=self._mlp_dims,
                  batch_norm=True,
                  scope=self._scope + "/MLP",
                  train=True,
                  reuse=True,
                  l2_reg=self._l2_reg,
                  relu_out=True,
              )
              identity_loss = tf.nn.l2_loss(
                  trans_embedding.get_outputs()[0]
                  - self._pretrain_input
              )
              self._pretrain_ops = tf.train.AdamOptimizer(
                  learning_rate=0.001
              ).minimize(identity_loss)
  
file_path: openrec/openrec/tf1/legacy/modules/extractions/temporal_latent_factor.py
imports: import tensorflow
  import numpy
  from tqdm import tqdm
  from openrec.tf1.legacy.modules.extractions import Extraction
  from openrec.tf1.legacy.modules.extractions import MultiLayerFC
label_desc: Use image node_id 3 for calling the TemporalLatentFactor obj's underlying member method code with example usage: obj._build_training_graph() without return types