import tensorflow as tf

                                   reg_user=self.regs[0], reg_item=self.regs[1], seed=self.seed)

            logits = tf.layers.dense(self.interaction, units=1, name='logits',
                                     kernel_initializer=tf.initializers.lecun_uniform(self.seed))
            self.prediction = tf.nn.sigmoid(logits)

            self.loss = loss_fn(labels=self.labels, logits=logits)
            train_op = train_fn(self.loss, learning_rate=self.learning_rate, learner=self.learner)

            initializer = tf.global_variables_initializer()

        config = tf.ConfigProto()
        config.gpu_options.allow_growth = True
        self.sess = tf.Session(graph=graph, config=config)
        self.sess.run(initializer)

        loop = trange(self.num_epochs, disable=not self.verbose)
        for _ in loop:
