import tensorflow as tf

        "output_weights", [hidden_size],
        initializer=tf.truncated_normal_initializer(stddev=0.02))

    output_bias = tf.get_variable(
        "output_bias",[], initializer=tf.zeros_initializer())

    with tf.variable_scope("loss"):
        if is_training:
            # I.e., 0.1 dropout
            output_layer = tf.nn.dropout(output_layer, keep_prob=0.9)

        logits = tf.reduce_sum(tf.multiply(output_layer,output_weights),-1)
        logits = tf.add(logits, output_bias)

        probabilities=tf.sigmoid(logits)
        # labels=tf.constant(labels,dtype=tf.int32)

        per_example_loss=tf.losses.sigmoid_cross_entropy(multi_class_labels=labels, logits=logits,reduction=Reduction.NONE)
        per_example_loss=tf.reduce_sum(per_example_loss,axis=-1)
        loss = tf.reduce_mean(per_example_loss,name='train_loss')

        return (loss, per_example_loss, logits, probabilities)


