using MIPVerify using Gurobi using Images mnist = MIPVerify.read_datasets("MNIST") mnist.train size(mnist.train.images) mnist.train.labels n1 = MIPVerify.get_example_network_params("MNIST.n1") MIPVerify.frac_correct(n1, mnist.test, 10000) sample_image = MIPVerify.get_image(mnist.test.images, 1) output_activations = sample_image |> n1 (output_activations |> MIPVerify.get_max_index) - 1 MIPVerify.get_label(mnist.test.labels, 1) target_label_index = 10 d = MIPVerify.find_adversarial_example( n1, sample_image, target_label_index, Gurobi.Optimizer, Dict(), norm_order = Inf, pp=MIPVerify.LInfNormBoundedPerturbationFamily(0.05) ) using JuMP perturbed_sample_image = JuMP.value.(d[:PerturbedInput]) perturbed_sample_image |> n1 colorview(Gray, perturbed_sample_image[1, :, :, 1]) colorview(Gray, sample_image[1, :, :, 1])