def padded_sequence_accuracy(logits, labels):
    'Percentage of times that predictions matches labels everywhere (non-0).'
    with tf.variable_scope('padded_sequence_accuracy', values=[logits, labels]):
        (logits, labels) = _pad_tensors_to_same_length(logits, labels)
        weights = tf.to_float(tf.not_equal(labels, 0))
        outputs = tf.to_int32(tf.argmax(logits, axis=(- 1)))
        padded_labels = tf.to_int32(labels)
        not_correct = (tf.to_float(tf.not_equal(outputs, padded_labels)) * weights)
        axis = list(range(1, len(outputs.get_shape())))
        correct_seq = (1.0 - tf.minimum(1.0, tf.reduce_sum(not_correct, axis=axis)))
        return (correct_seq, tf.constant(1.0))
Percentage of times that predictions matches labels everywhere (non-0).
def padded_sequence_accuracy(logits, labels):
    
    with tf.variable_scope('padded_sequence_accuracy', values=[logits, labels]):
        (logits, labels) = _pad_tensors_to_same_length(logits, labels)
        weights = tf.to_float(tf.not_equal(labels, 0))
        outputs = tf.to_int32(tf.argmax(logits, axis=(- 1)))
        padded_labels = tf.to_int32(labels)
        not_correct = (tf.to_float(tf.not_equal(outputs, padded_labels)) * weights)
        axis = list(range(1, len(outputs.get_shape())))
        correct_seq = (1.0 - tf.minimum(1.0, tf.reduce_sum(not_correct, axis=axis)))
        return (correct_seq, tf.constant(1.0))