Esempio n. 1
0
    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())

# --------------------------------------------------------------------

Esempio n. 2
0
    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)
Esempio n. 3
0
    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]
Esempio n. 4
0
    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)
Esempio n. 5
0
    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]
Esempio n. 6
0
    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]
Esempio n. 7
0
    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)