def inference(image, model, epsilon, adv_method):
    """Do inference on a image batch and the adversarial image batch"""
    prediction, _ = model(image)
    target = prediction.argmax(-1)
    noise = adv_method(image, model, target, epsilon)
    adversarial_prediction, _ = model(image + noise)
    return prediction, adversarial_prediction, image + noise