count = tf.cast(tf.equal(z, zbar), tf.float32) env.acc = tf.reduce_mean(count, name='acc') xent = tf.nn.softmax_cross_entropy_with_logits(labels=env.y, logits=logits) env.loss = tf.reduce_mean(xent, name='loss') env.optim = tf.train.AdamOptimizer().minimize(env.loss) # Note the reuse=True flag with tf.variable_scope('model', reuse=True): env.target = tf.placeholder(tf.int32, ()) # set min_proba to 1.1 means we want to finish all the epochs env.x_adv = jsma(model, env.x, env.target, pair=True, epochs=50, eps=1.0, min_proba=1.1) env.saver = tf.train.Saver() # -------------------------------------------------------------------- sess = tf.InteractiveSession() sess.run(tf.global_variables_initializer()) sess.run(tf.local_variables_initializer()) # --------------------------------------------------------------------
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) print('\nTraining model') model.fit(X_train, y_train, nb_epoch=10) print('\nSaving model') os.makedirs('model', exist_ok=True) model.save('model/ex_04.h5') x = tf.placeholder(tf.float32, shape=(None, img_rows, img_cols, img_chas)) y = tf.placeholder(tf.float32, shape=(None, nb_classes)) target = tf.placeholder(tf.int32, ()) x_adv = jsma(model, x, target, nb_epoch=0.1, pair=True, min_proba=0.8) print('\nTest against clean data') score = model.evaluate(X_test, y_test) print('\nloss: {0:.4f} acc: {1:.4f}'.format(score[0], score[1])) if False: db = np.load('data/ex_04.npy') X_adv, p = db['X_adv'], db['p'] else: blank = np.zeros((1, 28, 28, 1)) X_adv = np.empty((10, 28, 28)) p = np.empty((10, )) for i in np.arange(10): maxiter = 30 print('Target label {0}'.format(i), end='', flush=True)
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) print('\nTraining model') model.fit(X_train, y_train, nb_epoch=10) print('\nSaving model') os.makedirs('model', exist_ok=True) model.save('model/ex_01.h5') x = tf.placeholder(tf.float32, shape=(None, img_rows, img_cols, img_chas)) y = tf.placeholder(tf.float32, shape=(None, nb_classes)) ybar = model(x) target = tf.placeholder(tf.int32, ()) x_adv = jsma(model, x, target, tol=0.1) print('\nTest against clean data') score = model.evaluate(X_test, y_test) print('\nloss: {0:.4f} acc: {1:.4f}'.format(score[0], score[1])) if False: db = np.load('data/ex_01.npy') X_adv = db['X_adv'] else: thres = 0.9 y_pred = model.predict(X_test) y0 = np.max(y_pred, axis=1) z0 = np.argmax(y_pred, axis=1) ind = y0 > thres x0 = X_test[ind]
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) print('\nTraining model') model.fit(X_train, y_train, epochs=5) print('\nSaving model') os.makedirs('model', exist_ok=True) model.save('model/ex_04.h5') x = tf.placeholder(tf.float32, shape=(None, img_rows, img_cols, img_chas)) y = tf.placeholder(tf.float32, shape=(None, nb_classes)) target = tf.placeholder(tf.int32, ()) x_adv = jsma(model, x, target, epochs=0.05, pair=True, min_proba=0.8) print('\nTest against clean data') score = model.evaluate(X_test, y_test) print('\nloss: {0:.4f} acc: {1:.4f}'.format(score[0], score[1])) if False: db = np.load('data/ex_04.npy') X_adv, p = db['X_adv'], db['p'] else: blank = np.zeros((1, 28, 28, 1)) X_adv = np.empty((10, 28, 28)) p = np.empty((10, )) for i in np.arange(10): maxiter = 30 print('Target label {0}'.format(i), end='', flush=True)
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) print('\nTraining model') model.fit(X_train, y_train, nb_epoch=10) print('\nSaving model') os.makedirs('model', exist_ok=True) model.save('model/ex_02.h5') x = tf.placeholder(tf.float32, shape=(None, img_rows, img_cols, img_chas)) y = tf.placeholder(tf.float32, shape=(None, nb_classes)) ybar = model(x) target = tf.placeholder(tf.int32, ()) x_adv = jsma(model, x, target, tol=0.1, pair=True) print('\nTest against clean data') score = model.evaluate(X_test, y_test) print('\nloss: {0:.4f} acc: {1:.4f}'.format(score[0], score[1])) if False: db = np.load('data/ex_02.npy') X_adv = db['X_adv'] else: thres = 0.9 y_pred = model.predict(X_test) y0 = np.max(y_pred, axis=1) z0 = np.argmax(y_pred, axis=1) ind = y0 > thres x0 = X_test[ind]
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) print('\nTraining model') model.fit(X_train, y_train, epochs=5) print('\nSaving model') os.makedirs('model', exist_ok=True) model.save('model/ex_01.h5') x = tf.placeholder(tf.float32, shape=(None, img_rows, img_cols, img_chas)) y = tf.placeholder(tf.float32, shape=(None, nb_classes)) ybar = model(x) target = tf.placeholder(tf.int32, ()) x_adv = jsma(model, x, target, epochs=0.1) print('\nTest against clean data') score = model.evaluate(X_test, y_test) print('\nloss: {0:.4f} acc: {1:.4f}'.format(score[0], score[1])) if False: db = np.load('data/ex_01.npy') X_adv = db['X_adv'] else: thres = 0.9 y_pred = model.predict(X_test) y0 = np.max(y_pred, axis=1) z0 = np.argmax(y_pred, axis=1) ind = y0 > thres x0 = X_test[ind]
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) model.fit(X_train, y_train, nb_epoch=nb_epoch) os.makedirs('model', exist_ok=True) model.save('model/ex_01.h5') else: model = load_model('model/ex_01.h5') x = tf.placeholder(tf.float32, (None, 28, 28, 1)) y = tf.placeholder(tf.float32, (None, 10)) ybar = model(x) target = tf.placeholder(tf.int32, ()) x_adv = jsma(model, x, target) print('Testing...') score = model.evaluate(X_test, y_test) print('\nloss: {0:.4f} acc: {1:.4f}'.format(score[0], score[1])) saved = True if saved: with gzip.open('data/ex_01.pkl.gz', 'rb') as r: X_adv = pickle.load(r) X_adv = np.array(X_adv) else: thres = 0.9 y_pred = model.predict(X_test) y0 = np.max(y_pred, axis=1)