import tensorflow as tf

    loss = tf.maximum(0., (tgt_larg - tgt_small) - (pred_larg - pred_small))
    if hard_ratio < 1.0:
        hard_num = tf.cast(tools.shape(pred1)[0] * hard_ratio, tf.int32)
        loss = tf.reshape(loss, [-1])
        hard_loss, _ = tf.math.top_k(loss, k=hard_num)
        return hard_loss
    return loss

