def main()

in opacus/scripts/compute_dp_sgd_privacy.py [0:0]


def main():
    parser = argparse.ArgumentParser(
        description="Estimate privacy of a model trained with DP-SGD using RDP accountant",
    )
    parser.add_argument(
        "-r",
        "--sample-rate",
        type=float,
        required=True,
        help="Input sample rate (probability of each sample from the dataset to be selected for a next batch)",
    )
    parser.add_argument(
        "-n",
        "--noise-multiplier",
        type=float,
        required=True,
        help="Noise multiplier",
    )
    parser.add_argument(
        "-e",
        "--epochs",
        type=int,
        required=True,
        help="Number of epochs to train",
    )
    parser.add_argument(
        "-d", "--delta", type=float, default=1e-5, help="Targeted delta (default: 1e-5)"
    )
    parser.add_argument(
        "-a",
        "--alphas",
        action="store",
        dest="alphas",
        type=float,
        nargs="+",
        default=[1 + x / 10.0 for x in range(1, 100)] + list(range(12, 64)),
        help="List of alpha values (alpha orders of Renyi-DP evaluation). "
        "A default list is provided. Else, space separated numbers. E.g.,"
        "-a 10 100",
    )

    args = parser.parse_args()

    compute_dp_sgd_privacy(
        sample_rate=args.sample_rate,
        noise_multiplier=args.noise_multiplier,
        epochs=args.epochs,
        delta=args.delta,
        alphas=args.alphas,
    )