'Constructs classifier graph from inputs to classifier loss.
* Caches the VatxtInput object in `self.cl_inputs`
* Caches tensors: `cl_embedded`, `cl_logits`, `cl_loss`
Returns:
loss: scalar float.'

def classifier_graph(self):

    inputs = _inputs('train', pretrain=False)
    self.cl_inputs = inputs
    embedded = self.layers['embedding'](inputs.tokens)
    self.tensors['cl_embedded'] = embedded
    (_, next_state, logits, loss) = self.cl_loss_from_embedding(embedded, return_intermediates=True)
    tf.summary.scalar('classification_loss', loss)
    self.tensors['cl_logits'] = logits
    self.tensors['cl_loss'] = loss
    acc = layers_lib.accuracy(logits, inputs.labels, inputs.weights)
    tf.summary.scalar('accuracy', acc)
    adv_loss = (self.adversarial_loss() * tf.constant(FLAGS.adv_reg_coeff, name='adv_reg_coeff'))
    tf.summary.scalar('adversarial_loss', adv_loss)
    total_loss = (loss + adv_loss)
    tf.summary.scalar('total_classification_loss', total_loss)
    with tf.control_dependencies([inputs.save_state(next_state)]):
        total_loss = tf.identity(total_loss)
    return total_loss
