clean_batch_x = x_train[index[i*batch_size:(i*batch_size + num_clean_samples)]] train_feed[xx] = np.concatenate([clean_batch_x, adv_batch]) train_feed[yy] = clean_batch_y else: train_feed[xx] = clean_batch_x train_feed[yy] = clean_batch_y results = sess.run(train_calc, feed_dict=train_feed) performance.add_loss(results[1]) #performance.progress_bar(i+1., (len(x_train) // batch_size), metric/(i+1)) predictions = nntrainer.get_activations(sess, valid, 'output') print(metrics.accuracy(valid['targets'], predictions)) if print_adv_test and epoch >= num_clean_epochs: adv_test['inputs'] = perturb(test['inputs'], test['targets'], sess, nnmodel, train_feed, grad_tensor) # adv_test['inputs'] = test['inputs'] predictions = nntrainer.get_activations(sess, adv_test, 'output') roc, roc_curves = metrics.roc(test['targets'], predictions) print('Adversarial Accuracy') print(metrics.accuracy(test['targets'], predictions)) # save cross-validcation metrics loss, mean_vals, error_vals = nntrainer.test_model(sess, valid, name="valid", batch_size=batch_size, verbose=verbose)
# save cross-validcation metrics loss, mean_vals, error_vals = nntrainer.test_model( sess, valid, name="valid", batch_size=batch_size, verbose=verbose) for eps in eps_list: res_dict[eps] = [] for idx in range(num_trials): # get performance metrics noisy_train = { 'inputs': train['inputs'] + np.random.uniform( low=-eps, high=eps, size=train['inputs'].shape), 'targets': train['targets'] } predictions = nntrainer.get_activations(sess, noisy_train, 'output') acc = metrics.accuracy(train['targets'], predictions) print('Epsilon: ' + str(eps)) print('Trial: ' + str(idx + 1)) print(acc[0]) res_dict[eps].append(acc) print('Mean for eps=' + str(eps)) print(np.mean(res_dict[eps])) with open(os.path.join(results_path, model_name + '_acc.pickle'), 'wb') as f: cPickle.dump(res_dict, f, protocol=cPickle.HIGHEST_PROTOCOL) print(res_dict)