diff --git a/adversarial/fluid_mnist.py b/adversarial/fluid_mnist.py index d46defda55ee5ffeea529905f8049a3818a75276..031928e994cfe26e04a4779acfd9ec783ed22e6c 100644 --- a/adversarial/fluid_mnist.py +++ b/adversarial/fluid_mnist.py @@ -4,6 +4,7 @@ CNN on mnist data using fluid api of paddlepaddle import paddle.v2 as paddle import paddle.v2.fluid as fluid + def mnist_cnn_model(img): """ Mnist cnn model @@ -31,10 +32,7 @@ def mnist_cnn_model(img): pool_stride=2, act='relu') - logits = fluid.layers.fc( - input=conv_pool_2, - size=10, - act='softmax') + logits = fluid.layers.fc(input=conv_pool_2, size=10, act='softmax') return logits @@ -73,17 +71,19 @@ def main(): feed=feeder.feed(data), fetch_list=[avg_cost] + accuracy.metrics) pass_acc = accuracy.eval(exe) - print("pass_id=" + str(pass_id) + " acc=" + str(acc) + " pass_acc=" + - str(pass_acc)) + print("pass_id=" + str(pass_id) + " acc=" + str(acc) + " pass_acc=" + + str(pass_acc)) # print loss, acc if loss < LOSS_THRESHOLD and pass_acc > ACC_THRESHOLD: # if avg cost less than 10.0 and accuracy is larger than 0.9, we think our code is good. break + # exit(0) pass_acc = accuracy.eval(exe) print("pass_id=" + str(pass_id) + " pass_acc=" + str(pass_acc)) - fluid.io.save_params(exe, dirname='./mnist', main_program=fluid.default_main_program()) + fluid.io.save_params( + exe, dirname='./mnist', main_program=fluid.default_main_program()) print('train mnist done') exit(1) diff --git a/adversarial/mnist_tutorial_fgsm.py b/adversarial/mnist_tutorial_fgsm.py index 665062afd0e7a3013029269bd9ca5571b2346274..8b29346b8cd7f643771640afc4f783f7544cd071 100644 --- a/adversarial/mnist_tutorial_fgsm.py +++ b/adversarial/mnist_tutorial_fgsm.py @@ -9,6 +9,7 @@ import numpy as np from advbox.models.paddle import PaddleModel from advbox.attacks.gradientsign import GradientSignAttack + def cnn_model(img): """ Mnist cnn model @@ -19,25 +20,22 @@ def cnn_model(img): """ #conv1 = fluid.nets.conv2d() conv_pool_1 = fluid.nets.simple_img_conv_pool( - input=img, - num_filters=20, - filter_size=5, - pool_size=2, - pool_stride=2, - act='relu') + input=img, + num_filters=20, + filter_size=5, + pool_size=2, + pool_stride=2, + act='relu') conv_pool_2 = fluid.nets.simple_img_conv_pool( - input=conv_pool_1, - num_filters=50, - filter_size=5, - pool_size=2, - pool_stride=2, - act='relu') + input=conv_pool_1, + num_filters=50, + filter_size=5, + pool_size=2, + pool_stride=2, + act='relu') - logits = fluid.layers.fc( - input=conv_pool_2, - size=10, - act='softmax') + logits = fluid.layers.fc(input=conv_pool_2, size=10, act='softmax') return logits @@ -65,22 +63,16 @@ def main(): paddle.dataset.mnist.train(), buf_size=500), batch_size=BATCH_SIZE) feeder = fluid.DataFeeder( - feed_list=[IMG_NAME, LABEL_NAME], - place=place, - program=fluid.default_main_program() - ) + feed_list=[IMG_NAME, LABEL_NAME], + place=place, + program=fluid.default_main_program()) - fluid.io.load_params(exe, "./mnist/", main_program=fluid.default_main_program()) + fluid.io.load_params( + exe, "./mnist/", main_program=fluid.default_main_program()) # advbox demo - m = PaddleModel( - fluid.default_main_program(), - IMG_NAME, - LABEL_NAME, - logits.name, - avg_cost.name, - (-1, 1) - ) + m = PaddleModel(fluid.default_main_program(), IMG_NAME, LABEL_NAME, + logits.name, avg_cost.name, (-1, 1)) att = GradientSignAttack(m) for data in train_reader(): # fgsm attack @@ -89,6 +81,7 @@ def main(): plt.show() #np.save('adv_img', adv_img) break - + + if __name__ == '__main__': main()