def pretty_print_metrics(metrics):
    """
        Creates an easy to read string representation of the OrderedDict of
        metric values outputted by the above get_all_metrics function.

        Params:
            metrics : OrderedDict outputted by get_all_metrics()

        Returns:
            str : easy to read string representation of the input
    """
    try:
        not_print = ["confusion_matrix", "accuracy", "iterations"]
        arrays = ["all", "y_true_dist", "y_predicted_dist"]
        output = "iterations: " + str(int(metrics["iterations"])) if  "iterations" in metrics else "1"
        output += "\n\n"
        output += "accuracy: " + "%.3f" % metrics["accuracy"]
        output += "\n\n"
        for key in metrics:
            if key not in not_print:
                formatted_key = key + ": "
                output += formatted_key
                output += "\n"
                output += "\t"
                for entry in metrics[key]:
                    formatted_entry = entry + ": "
                    output += formatted_entry
                    if entry in arrays:
                        output += str(["%.3f" % x for x in metrics[key][entry]])
                    else:
                        output += "%.3f" % metrics[key][entry]
                    output += "\n"
                    output += "\t"

                output += "\n"

        return output
    except:
        raise Exception("Please send in the results of get_all_metrics()")