#     adv = Attacks.new_mi_fgsm(model, img, labels[i], eps=20, T=25)
#     #adv = Attacks.fgsm(model, img, labels[i], eps=20)
#     pred = model.predict(adv)
#     print(letters[pred.argmax()], pred.max() * 100)
#     plt.imsave("./images/m_{}.png".format(i),
#               adv.reshape(128, 128),
#               cmap="gray")

with tf.compat.v1.Session() as sess:
    #data = images / 255.0
    #data = img.reshape((-1, 128, 128, 1))
    data = images
    #data, model =  MNIST(), MNISTModel("models/mnist", sess)
    attack = Attacks.CarliniL0(sess,
                               model,
                               max_iterations=100,
                               initial_const=10,
                               largest_const=15)

    inputs, targets = generate_data(data,
                                    samples=1,
                                    targeted=True,
                                    start=0,
                                    inception=False)
    timestart = time.time()
    adv = attack.attack(inputs, targets)
    timeend = time.time()

    print("Took", timeend - timestart, "seconds to run", len(inputs),
          "samples.")